nicht aufgelöstes externes Symbol?



  • Hallo,

    ich habe in CMainFrame.h eine Funktion deklariert.

    HDC CreateHandleForPrinter( WCHAR* printerName );
    

    und in CMainFrame.cpp entsprechend implementiert.

    in einer anderen Funktion rufe ich diese Funktion mit

    if(m_hDC=CreateHandleForPrinter(szPrinter))
    	{
             }
    

    auf.
    Der Code compiliert problemlos, leider meckert der Linker

    1>MainFrm.obj : error LNK2001: Nicht aufgelöstes externes Symbol ""public: struct HDC__ * __thiscall CMainFrame::CreateHandleForPrinter(wchar_t *)" (?CreateHandleForPrinter@CMainFrame@@QAEPAUHDC__@@PA_W@Z)".
    

    Leider sagt mir die Fehlermeldung überhaupt nicht, warum die Funktion nicht gefunden wird. Selbst wenn ich die Funktion zum Test

    HDC CreateHandleForPrinter()
    

    compiliere, will der Linker nicht.
    Wo liegt derFehler?

    Danke

    Wilfried



  • Welch blöder Fehler 😮
    Code aus einem Snippet copiert und "CMainFrame::" vor der Funktionsimplementierung vergessen.

    Wilfried


  • Mod

    Dann würde ch mich fragen warum diese Funktion überhaupt eine Memberfunktion von CMainFrame ist, wenn diese Funktion gar keine Elemente aus CMainFrame benötigt...



  • Na ja,
    sonst habe ich die Druckroutinen in CView. Da ich hier aber eine ListView habe und CMainFrame die Kommandos von den Buttons verarbeitet, hab ich es eben in die CMainFrame verlegt...

    Mfg

    Wilfried


  • Mod

    Und warum sollten die Commands für die Buttons für die Bedienung eines Views in den CMainFrame? 😉



  • Jeder hat eben seine Vorlieben 🙂 .
    Ich lege z.B alle Kommando-Behandlungs-Funktionen in die CMainFrame, das ist so meine zentrale Schaltstelle. Und hier habe ich nichts in der View gesteuert, die Druckroutinen haben mit der ListView in diesem Fall nichts zu tun, sondern ich drucke über StartDoc - EndDoc. Und man kann natürlich darüber streiten, wo man das macht - hier greift eben meine Vorliebe 😉

    Mfg

    Wilfried


Anmelden zum Antworten