Skip to content

Commit da00816

Browse files
nobuhsbt
authored andcommitted
Win32: Expose wchar main routine only
Warned if both of `main` and `wmain` are exposed: ``` LINK : warning LNK4067: ambiguous entry point; selected 'mainCRTStartup' ```
1 parent 7e27894 commit da00816

2 files changed

Lines changed: 8 additions & 6 deletions

File tree

main.c

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,12 @@ int rb_wasm_rt_start(int (main)(int argc, char **argv), int argc, char **argv);
4444
#define rb_main(argc, argv) rb_wasm_rt_start(rb_main, argc, argv)
4545
#endif
4646

47+
#ifdef _WIN32
48+
#define main(argc, argv) w32_main(argc, argv)
49+
static int main(int argc, char **argv);
50+
int wmain(void) {return main(0, NULL);}
51+
#endif
52+
4753
int
4854
main(int argc, char **argv)
4955
{
@@ -57,7 +63,3 @@ main(int argc, char **argv)
5763
ruby_sysinit(&argc, &argv);
5864
return rb_main(argc, argv);
5965
}
60-
61-
#ifdef _WIN32
62-
int wmain(void) {return main(0, NULL);}
63-
#endif

win32/winmain.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
#include <windows.h>
22
#include <stdio.h>
33

4-
extern int main(int, char**);
4+
extern int wmain(int, WCHAR**);
55

66
int WINAPI
77
WinMain(HINSTANCE current, HINSTANCE prev, LPSTR cmdline, int showcmd)
88
{
9-
return main(0, NULL);
9+
return wmain(0, NULL);
1010
}

0 commit comments

Comments
 (0)