MFC needs the entry point to be wWinMainCRTStartup() in Unicode builds but the
bakefile-generated projects use the default WinMain() so the sample didn't
link in Unicode.
Fix this by providing WinMain() which simply forwards to wWinMainCRTStartup()
as this seems to work for all MSVC/CRT versions.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66667
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
// first: mfc[version][u]d.lib
// - [version] -> 42 or 70 or 80 etc
// - u if using Unicode
// 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
// notice use of IMPLEMENT_APP_NO_MAIN() instead of the usual IMPLEMENT_APP!
IMPLEMENT_APP_NO_MAIN(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") );
CMainWindow::CMainWindow()
{
LoadAccelTable( wxT("MainAccelTable") );