X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/9482617091b084d4ee006679a450176715d465e0..4c3ebca927cea2742ec128c9c3ef3676d1ecae01:/src/msw/main.cpp diff --git a/src/msw/main.cpp b/src/msw/main.cpp index 20a274a5dc..c293e7c511 100644 --- a/src/msw/main.cpp +++ b/src/msw/main.cpp @@ -55,9 +55,6 @@ // function prototypes // ---------------------------------------------------------------------------- -// from src/msw/app.cpp -extern void WXDLLEXPORT wxEntryCleanup(); - static wxChar **ConvertToStandardCommandArgs(const wxChar *p, int& argc); // ============================================================================ @@ -68,13 +65,13 @@ static wxChar **ConvertToStandardCommandArgs(const wxChar *p, int& argc); // Windows-specific wxEntry // ---------------------------------------------------------------------------- -int wxEntry(WXHINSTANCE hInstance, - WXHINSTANCE WXUNUSED(hPrevInstance), - char *pCmdLine, - int nCmdShow) +WXDLLEXPORT int wxEntry(HINSTANCE hInstance, + HINSTANCE WXUNUSED(hPrevInstance), + char *pCmdLine, + int nCmdShow) { // remember the parameters Windows gave us - wxSetInstance((HINSTANCE)hInstance); + wxSetInstance(hInstance); wxApp::m_nCmdShow = nCmdShow; // parse the command line @@ -100,16 +97,23 @@ extern "C" #if !defined(_WINDLL) +#ifdef __WXWINCE__ +int WINAPI WinMain(HINSTANCE hInstance, + HINSTANCE hPrevInstance, + LPWSTR lpCmdLine, + int nCmdShow) +{ + return wxEntry(hInstance, hPrevInstance, (char*) lpCmdLine, nCmdShow); +} +#else int PASCAL WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { - return wxEntry((WXHINSTANCE) hInstance, - (WXHINSTANCE) hPrevInstance, - lpCmdLine, - nCmdShow); + return wxEntry(hInstance, hPrevInstance, lpCmdLine, nCmdShow); } +#endif #else // _WINDLL @@ -126,7 +130,7 @@ DllMain(HANDLE hModule, DWORD fdwReason, LPVOID WXUNUSED(lpReserved)) switch (fdwReason) { case DLL_PROCESS_ATTACH: - return wxEntry((WXHINSTANCE) hModule); + return wxEntry(hModule); case DLL_PROCESS_DETACH: wxEntryCleanup(); @@ -165,7 +169,9 @@ wxChar **ConvertToStandardCommandArgs(const wxChar *p, int& argc) // and +1 here for the terminating NULL wxChar **argv = new wxChar *[argc + 1]; - argv[0] = new wxChar[MAX_PATH]; + // as we use wxStrdup below we must allocate the first argument using + // malloc(), not new[], as well + argv[0] = (wxChar *)malloc(MAX_PATH * sizeof(wxChar)); ::GetModuleFileName(wxhInstance, argv[0], MAX_PATH); // copy all the other arguments to wxApp::argv[]