Avatar billede unsigned Nybegynder
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.
Avatar billede jpk Nybegynder
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
Avatar billede jpk Nybegynder
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..?
Avatar billede unsigned Nybegynder
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)
Avatar billede jpk Nybegynder
04. marts 2004 - 15:46 #4
Hvad står der i feltet "Preprocessor definitions" på fanebladet C/C++, Category = Preprocessor?
Avatar billede unsigned Nybegynder
04. marts 2004 - 15:52 #5
Der står: WIN32,_DEBUG,_CONSOLE,_MBCS,_AFXDLL
Avatar billede jpk Nybegynder
04. marts 2004 - 15:54 #6
Skift _CONSOLE ud med _WINDOWS
Avatar billede jpk Nybegynder
04. marts 2004 - 15:54 #7
Har du oprettet et console projekt og så kopieret noget Windows-kode ind i det..?
Avatar billede unsigned Nybegynder
04. marts 2004 - 15:55 #8
Det må jeg sige ja til.
Avatar billede unsigned Nybegynder
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)
Avatar billede jpk Nybegynder
04. marts 2004 - 16:03 #10
Tjek også fanebladet C/C++, Category = General...

Og prøv så Build->Rebuild All
Avatar billede unsigned Nybegynder
04. marts 2004 - 16:07 #11
Under c/c++, category = general, stod der windows. Jeg prøvede Build->Rebuild All, men der kommer stadig den samme fejlmeddelse. Jeg har koden fra:
http://www.functionx.com/MFCFundamentals/Lesson02.htm
Avatar billede jpk Nybegynder
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
Avatar billede unsigned Nybegynder
04. marts 2004 - 16:17 #13
Subsystem var console. Jeg rettede det til windows, og så kørte programmet.
Avatar billede jpk Nybegynder
04. marts 2004 - 16:19 #14
Hvis du skal afprøve flere eksempler, kan du med fordel oprette et projekt af typen "Win32 Application"
Avatar billede unsigned Nybegynder
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.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester