]> git.saurik.com Git - wxWidgets.git/blobdiff - samples/mfc/mfctest.cpp
Don't use GetThreadId() in wxMSW code.
[wxWidgets.git] / samples / mfc / mfctest.cpp
index 69146772d35ebc60a49d5b95841cfe5deb1849c9..31a7ded470045ef977833a993c2798ca42de2ec5 100644 (file)
 //     first: mfc[version][u]d.lib
 //     -  [version] -> 42 or 70 or 80 etc
 //     -  u if using Unicode
-//
-// (4) Unicode builds may produce the linker error "unresolved external symbol _WinMain@16".
-//     MFC requires you to manually add the Unicode entry point to the linker settings,
-//     Entry point symbol -> wWinMainCRTStartup
+
+// Disable deprecation warnings from headers included from stdafx.h for VC8+
+#ifndef _CRT_SECURE_NO_WARNINGS
+    #define _CRT_SECURE_NO_WARNINGS
+#endif
+
+// Also define WINVER to avoid warnings about it being undefined from the
+// platform SDK headers (usually this is not necessary because it is done by wx
+// headers but here we include the system ones before them)
+#ifndef WINVER
+    #define WINVER 0x0600
+#endif
 
 #include "stdafx.h"
 
@@ -128,6 +136,18 @@ DECLARE_APP(MyApp)
 // notice use of IMPLEMENT_APP_NO_MAIN() instead of the usual IMPLEMENT_APP!
 IMPLEMENT_APP_NO_MAIN(MyApp)
 
+#ifdef _UNICODE
+// In Unicode build MFC normally requires to manually change the entry point to
+// wWinMainCRTStartup() but to avoid having to modify the project options to do
+// it we provide an adapter for it.
+extern "C" int wWinMainCRTStartup();
+
+int WINAPI WinMain(HINSTANCE, HINSTANCE, char *, int)
+{
+    wWinMainCRTStartup();
+}
+#endif // _UNICODE
+
 CMainWindow::CMainWindow()
 {
     LoadAccelTable( wxT("MainAccelTable") );