int main (int argc, char *argv[]) {
- LPWSTR *argvW = NULL;
- int args;
- WCHAR *cmdW = NULL;
If you will start using wmain() instead of main() you get unicode args for free, and that will help to avoid changing the command line parsing code.
Hi, Sorry for the delayed response - been away...
I'd never heard of that, but looking it up in google makes it look like this should work, but when I change it all I get is a failure at build time:
Change was: --- a/programs/cmd/wcmdmain.c +++ b/programs/cmd/wcmdmain.c @@ -100,9 +100,8 @@ static WCHAR *WCMD_expand_envvar(WCHAR *start); * winmain(). */
-int main (int argc, char *argv[]) +int wmain (int argc, WCHAR *argvW[]) { - LPWSTR *argvW = NULL; int args; WCHAR *cmd = NULL; WCHAR string[1024]; @@ -122,7 +121,6 @@ int main (int argc, char *argv[]) strcpyW(anykey, WCMD_LoadMessage(WCMD_ANYKEY));
/* Get a Unicode command line */ - argvW = CommandLineToArgvW( GetCommandLineW(), &argc ); args = argc;
opt_c=opt_k=opt_q=opt_s=0;
Compile error was:
../../tools/winegcc/winegcc ..... ../../dlls/winecrt0/libwinecrt0.a(exe_main.o): In function `main': /home/wine/wine/dlls/winecrt0/exe_main.c:48: undefined reference to `WinMain'
Does wine support this? I initially did it this way copying from programs/msiexec
Jason