04. marts 2004 - 15:13
Der er
14 kommentarer og 1 løsning
Find en fejl i Visual C++ 6 program
Denne her kodestump: #include <afxwin.h> class CMainFrame : public CFrameWnd { public: CMainFrame (); protected: DECLARE_MESSAGE_MAP() }; CMainFrame::CMainFrame() { // Create the window's frame Create(NULL, "Windows Application", WS_OVERLAPPEDWINDOW, CRect(120, 100, 700, 480), NULL); } class CExerciseApp: public CWinApp { public: BOOL InitInstance(); }; BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd) END_MESSAGE_MAP() BOOL CExerciseApp::InitInstance() { m_pMainWnd = new CMainFrame ; m_pMainWnd->ShowWindow(SW_SHOW); m_pMainWnd->UpdateWindow(); return TRUE; } CExerciseApp theApp; Giver denne her fejlmeddelelse: --------------------Configuration: Messages1 - Win32 Debug-------------------- Compiling... Exercise.cpp Linking... nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __endthreadex nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __beginthreadex libcd.lib(crt0.obj) : error LNK2001: unresolved external symbol _main Debug/Messages1.exe : fatal error LNK1120: 3 unresolved externals Error executing link.exe. Messages1.exe - 4 error(s), 0 warning(s) Jeg kan ikke selv finde fejlen. Håber at der er en anden der kan.
Annonceindlæg fra Publicis Sapient
04. marts 2004 - 15:19
#1
Prøv at gå ind i Project->Settings, fanebladet C/C++, Category = Code Generation I "Use run-time library" skal du vælge den entry der svarer til dine valg for debug/release og MFC shared/static
04. marts 2004 - 15:20
#2
Du har vel valgt enten "Use MFC in a shared DLL" eller "Use MFC in a static Library" under "General" fanebladet..?
04. marts 2004 - 15:40
#3
Jeg gik ind under general fanebladet, og valgte 'use mfc in a shared dll'. Nu er der kun to fejlmeddelelser. Under 'use runtime library', har jeg prøvet alle 6 muligheder. De 2 fejl kommer ved 'debug multithreaded DLL' --------------------Configuration: Messages1 - Win32 Debug-------------------- Compiling... Exercise.cpp Linking... msvcrtd.lib(crtexe.obj) : error LNK2001: unresolved external symbol _main Debug/Messages1.exe : fatal error LNK1120: 1 unresolved externals Error executing link.exe. Messages1.exe - 2 error(s), 0 warning(s)
04. marts 2004 - 15:46
#4
Hvad står der i feltet "Preprocessor definitions" på fanebladet C/C++, Category = Preprocessor?
04. marts 2004 - 15:52
#5
Der står: WIN32,_DEBUG,_CONSOLE,_MBCS,_AFXDLL
04. marts 2004 - 15:54
#6
Skift _CONSOLE ud med _WINDOWS
04. marts 2004 - 15:54
#7
Har du oprettet et console projekt og så kopieret noget Windows-kode ind i det..?
04. marts 2004 - 15:55
#8
Det må jeg sige ja til.
04. marts 2004 - 16:00
#9
Jeg har skiftet console ud med windows. Der kommer denne fejlmeddelelse: --------------------Configuration: Messages1 - Win32 Debug-------------------- Linking... msvcrtd.lib(crtexe.obj) : error LNK2001: unresolved external symbol _main Debug/Messages1.exe : fatal error LNK1120: 1 unresolved externals Error executing link.exe. Messages1.exe - 2 error(s), 0 warning(s)
04. marts 2004 - 16:03
#10
Tjek også fanebladet C/C++, Category = General... Og prøv så Build->Rebuild All
04. marts 2004 - 16:13
#12
Under Project->Settings, fanebladet Link, project options feltet, står der da subsystem:console? I så fald skal det rettes til subsystem:windows
04. marts 2004 - 16:17
#13
Subsystem var console. Jeg rettede det til windows, og så kørte programmet.
04. marts 2004 - 16:19
#14
Hvis du skal afprøve flere eksempler, kan du med fordel oprette et projekt af typen "Win32 Application"
04. marts 2004 - 16:40
#15
Nu hvor jeg har fået
www.functionx.com's kode til at virke, så holder jeg mig til det. Jeg kopierer de forskellige eksempler til samme projekt, og sletter den gamle kode. Hvis jeg skal bruge noget af den gamle kode, så kan jeg hente det på hjemmesiden. Hvis jeg skal lave noget mere avanceret, så vil jeg huske på dit råd. Tak for hjælpen, forresten. Nu kan jeg komme videre.
Kurser inden for grundlæggende programmering