// function prototypes
// ----------------------------------------------------------------------------
-// from src/msw/app.cpp
-extern void WXDLLEXPORT wxEntryCleanup();
-
static wxChar **ConvertToStandardCommandArgs(const wxChar *p, int& argc);
// ============================================================================
// Windows-specific wxEntry
// ----------------------------------------------------------------------------
-int wxEntry(HINSTANCE hInstance,
- HINSTANCE 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);
#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,
{
return wxEntry(hInstance, hPrevInstance, lpCmdLine, nCmdShow);
}
+#endif
#else // _WINDLL
// 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[]