Blöder Anfänger braucht hilfe plz :P -> MFC-Miniprogramm



  • ich bin was MFC betrifft noch völlig unbedarft und wollte mit hilfe eines tutorials einsteigen. also dachte ich mir, erstmal die grundelemente und vorgehensweisen verstehen, bevor man sich an die (für anfänger viel zu bombastischen) vom app-wizzard generierten skelette ranmacht.
    im ersten tutorial, dass ich versucht habe war ein MFC-minimalprogramm aufgeführt, dass sich leider nicht kompilieren lies, also nächstes tutorial. hier war ein schönes beispielprogramm aufgeführt, das ich ganz gut verstehe (denke ich) und weiterführen möchte. es lässt sich auch (fast) kompilieren, führt jedoch zu einem linker-fehler:

    libcmt.lib(crt0.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_main" in Funktion "___tmainCRTStartup".

    und dabei war der code so vielversprechend 😞

    es wäre toll, wenn jemand, der sich mit MFC gut auskennt, einen kurzen blick auf den code werfen könnte. vielleicht ist der fehler fürs geübte auge ja schnell zu erkennen. das wäre gut, weil ich dann das tutorial (das mir ganz gut liegt) zuende machen könnte und nicht wieder ein neues anfagen muss.

    hier mal der code:

    #include <afxwin.h>
    
    //// Die Anwendungsklasse
    class CMyApp : public CWinApp {
    public:
    	virtual BOOL InitInstance();
    	//CMyApp();
    	//~CMyApp();
    };
    
    // Die Fensterklasse
    class CMainWnd : public CFrameWnd {
    public:
    	CMainWnd();
    	afx_msg void OnLButtonDown(UINT, CPoint);
    	DECLARE_MESSAGE_MAP();
    };
    
    // Message Map von CMainWnd
    BEGIN_MESSAGE_MAP(CMainWnd, CFrameWnd)
    	ON_WM_LBUTTONDOWN()
    END_MESSAGE_MAP()
    
    void CMainWnd::OnLButtonDown(UINT, CPoint)
    {
    	MessageBox("Hello World", "Huhu!", MB_OK);
    }
    
    static CMyApp theApp;
    
    BOOL CMyApp::InitInstance()
    {
    	m_pMainWnd = new CMainWnd;
    	m_pMainWnd->ShowWindow(m_nCmdShow);
    
    	// TRUE liefern um das Nachrichtensystem der Anwendung zu starten
    	return TRUE;
    }
    
    CMainWnd::CMainWnd()
    {
    	Create(NULL, "Alles wird gut");
    }
    

    achja, falls es von belang ist: ich hab MSVS2005 standard-edition

    MFG & Danke



  • ohne mir das jetzt genauer angeschaut zu haben, gehe ich davon aus, das du das falsche projekt erstellt hast, das projekt welches du erstellen mußt, muß ein MFC projekt sein, damit auch alle benötigten libs gebunden werden.

    vielleicht hilft dir das weiter

    gruß



  • project -> propertys -> general -> use of MFC -> dynamic oder static
    dann funktionierts auch

    jedes programm braucht eine main funktion, diese steckt bei der mfc in einer entsprechenden dll - einbinden und feddich


Anmelden zum Antworten