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