diff options
author | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2024-11-17 22:49:16 +0900 |
---|---|---|
committer | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2024-11-17 22:49:16 +0900 |
commit | 8fe8021f5a5b48520f9c1095e7cfa1fd416b6dfd (patch) | |
tree | caf659d510e67c95f952e972981cbb00da3325fe | |
parent | 36d02dc33e2bd47c653a7ad06ed92973f3dcab37 (diff) |
Win32: Expose wchar main routine only
Warned if both of `main` and `wmain` are exposed:
```
LINK : warning LNK4067: ambiguous entry point; selected 'mainCRTStartup'
```
Notes
Notes:
Merged: https://github.com/ruby/ruby/pull/12108
-rw-r--r-- | main.c | 10 | ||||
-rw-r--r-- | win32/winmain.c | 4 |
2 files changed, 8 insertions, 6 deletions
@@ -48,6 +48,12 @@ int rb_wasm_rt_start(int (main)(int argc, char **argv), int argc, char **argv); #define rb_main(argc, argv) rb_wasm_rt_start(rb_main, argc, argv) #endif +#ifdef _WIN32 +#define main(argc, argv) w32_main(argc, argv) +static int main(int argc, char **argv); +int wmain(void) {return main(0, NULL);} +#endif + int main(int argc, char **argv) { @@ -62,10 +68,6 @@ main(int argc, char **argv) return rb_main(argc, argv); } -#ifdef _WIN32 -int wmain(void) {return main(0, NULL);} -#endif - #ifdef RUBY_ASAN_ENABLED /* Compile in the ASAN options Ruby needs, rather than relying on environment variables, so * that even tests which fork ruby with a clean environment will run ASAN with the right diff --git a/win32/winmain.c b/win32/winmain.c index 467a835d29..a9f38099db 100644 --- a/win32/winmain.c +++ b/win32/winmain.c @@ -1,10 +1,10 @@ #include <windows.h> #include <stdio.h> -extern int main(int, char**); +extern int wmain(int, WCHAR**); int WINAPI WinMain(HINSTANCE current, HINSTANCE prev, LPSTR cmdline, int showcmd) { - return main(0, NULL); + return wmain(0, NULL); } |