@@ -219,36 +219,13 @@ Window createWindow(const char *title, unsigned msaa)
219
219
}
220
220
221
221
#ifdef _WIN32
222
+ // hack to fix SDL
223
+ FILE _iob[] = { *stdin, *stdout, *stderr };
222
224
223
- int main (int argc, char **argv);
224
-
225
- int CALLBACK WinMain (
226
- _In_ HINSTANCE hInstance,
227
- _In_ HINSTANCE hPrevInstance,
228
- _In_ LPSTR lpCmdLine,
229
- _In_ int nCmdShow)
225
+ extern " C" FILE * __cdecl __iob_func (void )
230
226
{
231
- LPWSTR lpwCmdLine = NULL ;
232
- int len = MultiByteToWideChar (CP_UTF8, MB_PRECOMPOSED, lpCmdLine, -1 , lpwCmdLine, 0 );
233
- lpwCmdLine = new WCHAR[len];
234
- MultiByteToWideChar (CP_UTF8, MB_PRECOMPOSED, lpCmdLine, -1 , lpwCmdLine, len);
235
- int argc;
236
- LPWSTR *argvw = CommandLineToArgvW (lpwCmdLine, &argc);
237
- delete[] lpwCmdLine;
238
- LPSTR *argv = new LPSTR[argc];
239
- for (int i = 0 ; i < argc; i++) {
240
- int len = WideCharToMultiByte (CP_UTF8, WC_NO_BEST_FIT_CHARS | WC_COMPOSITECHECK | WC_DEFAULTCHAR, argvw[i], -1 , argv[i], 0 , NULL , NULL );
241
- argv[i] = new CHAR[len + 1 ];
242
- argv[i][len] = 0 ;
243
- WideCharToMultiByte (CP_UTF8, WC_NO_BEST_FIT_CHARS | WC_COMPOSITECHECK | WC_DEFAULTCHAR, argvw[i], -1 , argv[i], len, NULL , NULL );
244
- }
245
- LocalFree (argvw);
246
- main (argc, argv);
247
- for (int i = 0 ; i < argc; i++) {
248
- delete[] argv[i];
249
- }
227
+ return _iob;
250
228
}
251
-
252
229
#endif
253
230
254
231
ilA_fs demo_fs;
0 commit comments