WinMain statisch linken?



  • Ist es normal das sich das hier ...

    #include <windows.h>
    
    #pragma comment(lib,"User32.lib")
    
    int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)
    {
    	MessageBox(0,L"Test",0,MB_OK);
    	return 0;
    }
    

    ... nicht kompilieren lässt wenn ich in den Projektoptionen "Use of MFC" auf "Use MFC in a Static Library" einstelle? Ich brauch ein Programm das auch läuft ohne das ich irgendwelche DLLs auf dem Zielrechner installieren muss.
    "Codegeneration" is auf "Multi-threaded Debug" eingestellt.

    Linker meldet:
    error LNK2019: unresolved external symbol _wWinMain@16 referenced in function ___tmainCRTStartup

    Sobald ich es auf "Use Standard Windows Libraries" stelle läßt sich zwar alles compilieren und linken ... nur dann brauch ich doch bestimmt wieder irgendwelche DLLs oder?



  • du wirbelst da so einige begrifflichkeiten durcheinander. dat LPSTR in der WinMain is ja auch ned das wahre und dann das L in Messagebox dazu.



  • Warum is das nicht das wahre? So steht WinMain im MSDN.
    Was ist mit dem L? Das Projekt soll UNICODE sein.

    Wie bekomme ich das nun statisch verlinkt?



  • Ändere dein WinMain auf folgende Signatur:

    int _tWinMain(HINSTANCE /*hInstance*/, HINSTANCE /*hPrevInstance*/, LPTSTR /*lpCmdLine*/, int /*nCmdShow*/)
    {
    }
    

    Edit:
    ev. noch tchar.h includieren.



  • ahh 💡 *WinMain nix gut für Unicode*

    Danke theta!

    Klappt wunderbar, habe noch ein WINAPI davor gesetzt - sonnst meckert der Compiler wegen der callingconvention 👍


Anmelden zum Antworten