Anfängerfrage: Wie bekomme ich fehler weg?



  • Hallo,

    ich will <fstream> benutzen. Compilieren tut er e (ich nutze VS 2003), allerdings bekomme ich folgenden Linkerfehler:

    Enhance.obj : error LNK2019: Nicht aufgelöstes externes Symbol '"__declspec(dllimport) public: void __thiscall std::basic_fstream<char,struct std::char_traits<char> >::`vbase destructor'(void)" (__imp_??_D?$basic_fstream@DU?$char_traits@D@std@@@std@@QAEXXZ)', verwiesen in Funktion '"private: long __thiscall CEnhance::Transform(struct IMediaSample *)" (?Transform@CEnhance@@AAEJPAUIMediaSample@@@Z)'
    Enhance.obj : error LNK2019: Nicht aufgelöstes externes Symbol '"__declspec(dllimport) public: void __thiscall std::basic_fstream<char,struct std::char_traits<char> >::close(void)" (__imp_?close@?$basic_fstream@DU?$char_traits@D@std@@@std@@QAEXXZ)', verwiesen in Funktion '"private: long __thiscall CEnhance::Transform(struct IMediaSample *)" (?Transform@CEnhance@@AAEJPAUIMediaSample@@@Z)'
    Enhance.obj : error LNK2019: Nicht aufgelöstes externes Symbol '"__declspec(dllimport) public: void __thiscall std::basic_fstream<char,struct std::char_traits<char> >::open(char const *,int,int)" (__imp_?open@?$basic_fstream@DU?$char_traits@D@std@@@std@@QAEXPBDHH@Z)', verwiesen in Funktion '"private: long __thiscall CEnhance::Transform(struct IMediaSample *)" (?Transform@CEnhance@@AAEJPAUIMediaSample@@@Z)'
    Enhance.obj : error LNK2019: Nicht aufgelöstes externes Symbol '"__declspec(dllimport) public: __thiscall std::basic_fstream<char,struct std::char_traits<char> >::basic_fstream<char,struct std::char_traits<char> >(void)" (__imp_??0?$basic_fstream@DU?$char_traits@D@std@@@std@@QAE@XZ)', verwiesen in Funktion '"private: long __thiscall CEnhance::Transform(struct IMediaSample *)" (?Transform@CEnhance@@AAEJPAUIMediaSample@@@Z)'
    

    was heißt das und vorallem wie bekomme ich es weg???

    danke schonmal.



  • hm...da du ja keinen code zeigst, vielleicht std:: vorsetzen?



  • hi,

    ich kann viel code zeigen, was willst sehen 😉 ??

    meine includes:

    #include <streams.h>  
    #include <windows.h>
    #include <initguid.h>    
    #include <tchar.h>
    #include <stdio.h>
    #include "iEnhance.h"
    #include "Enhance.h"
    #include "EnhanceProp.h"
    #include <cmath>
    #include "Filter.h"
    #include <ctime>
    #include "resource.h"
    #include "RandomGenerator.h"
    
    #define TRANSFORM_NAME L"Enhance Filter"
    #define CLIP(a) ((a<0) ? 0 :(a>255) ? 255 : a);
    
    #include <fstream>
    

    meine definition des dateihandles:

    ...
    	int *YData			   = new int[numPixels];  // Luminanzbuffer
    	int *YDataBuffer	   = new int[numPixels];
    
    	std::fstream f;
    	f.open("Enhanced_OUTPUT",std::ios::out);
    ...
    

    mehr habe ich gar nicht. dann habe ich einfach compile gedrückt, war ok. bei build kommt obenstehender fehler.

    ne idee??



  • Es ist ein Link fehler was hasten alles verlinkt?

    Edit:

    <streams.h> heißt das nicht <fstream>?



  • Hallo,

    die folgende Konfiguration macht er, wenn ich fstream Anweisungen rausnehme:

    Die temporäre Datei "c:\Dokumente und ... ...\Visual Studio Projects\Enhance\Release\RSP000001.rsp" wird erstellt. Inhalt:
    [
    /O2 /Ot /G7 /I "C:\DXSDK\Samples\C++\DirectShow\BaseClasses\." /I "C:\DXSDK\include" /D "NDEBUG" /D "_WINDLL" /FD /EHsc /MD /YX"streams.h" /Fp"./Release/Enhance.pch" /Fo"Release/" /Fd"Release/vc70.pdb" /c /Gz
    ".\Enhance.cpp"
    ]Erstellen der Befehlszeile "cl.exe @"c:\Dokumente und ... ...\Visual Studio Projects\Enhance\Release\RSP000001.rsp" /nologo"Die temporäre Datei "c:\Dokumente und ... ...\Visual Studio Projects\Enhance\Release\RSP000002.rsp" wird erstellt. Inhalt:
    [
    /OUT:"Release\Enhance.ax" /INCREMENTAL /NOLOGO /LIBPATH:"C:\DXSDK\Samples\C++\DirectShow\BaseClasses\Release" /LIBPATH:"C:\DXSDK\lib" /DLL /NODEFAULTLIB /DEF:"C:\Dokumente und ... ...\Visual Studio Projects\Enhance\Enhance.def" amstrmid.lib strmbase.lib msvcrt.lib quartz.lib vfw32.lib winmm.lib kernel32.lib msvcrt.lib libc.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib "\Dxsdk\Lib\amstrmid.lib" "\Dxsdk\Samples\C++\DirectShow\BaseClasses\Release\STRMBASE.lib" "\Dxsdk\Lib\quartz.lib"
    ".\Release\Block.obj"
    ".\Release\Enhance.obj"
    ".\Release\EnhanceProp.obj"
    ".\Release\Filter.obj"
    ".\Release\RandomGenerator.obj"
    ".\Release\Enhance.res"
    ]Erstellen der Befehlszeile "link.exe @"c:\Dokumente und ... ..\Visual Studio Projects\Enhance\Release\RSP000002.rsp""Die temporäre Datei "c:\Dokumente und... ...\Visual Studio Projects\Enhance\Release\BAT000003.bat" wird erstellt. Inhalt:
    [
    @echo off
    regsvr32 /s "c:\Dokumente und ... ...\Visual Studio Projects\Enhance\Release\Enhance.ax"
    if errorlevel 1 goto VCReportError
    goto VCEnd
    :VCReportError
    echo Project : error PRJ0019: Ein Tool hat einen Fehlercode aus folgender Quelle zurückgegeben: "Registering c:\Dokumente und ... ...\Visual Studio Projects\Enhance\Release\Enhance.ax"
    exit 1
    :VCEnd
    ]Erstellen der Befehlszeile ""c:\Dokumente und ... ...\Visual Studio Projects\Enhance\Release\BAT000003.bat""
    

    Hilft das weiter? Die Pfade habe ich etwas gekürzt. Bezog sich jeweils auf Eigene Dateien ...

    mfg


Log in to reply