main() 包装器启动 main() 程序以从命令行编译它
main() wrapper to start wmain() program to compile it from commandline
例如我有一个程序 "main" 函数定义为 wmain。
int wmain( int argc, wchar_t *argv[] ) {
wchar_t* lpModulePath = NULL;
wchar_t* lpFunctionName = NULL;
lpModulePath = argv[1];
lpFunctionName = argv[2];
}
并且当然使用 wchar_t 类型。我怎样才能写一个函数
int main( int argc, char *argv[] )
将作为char传递的参数转换为wchar_t然后自己调用wmain?
谢谢
在 Windows 上您可以使用 GetCommandLineW()
和 CommandLineToArgvW()
:
int main(int argc, char* argv[])
{
wchar_t** wargv = CommandLineToArgvW(GetCommandLineW(), &argc);
int ret = wmain(argc, wargv);
LocalFree(wargv);
return ret;
}
在 Linux 恐怕你必须分配数组并在循环中转换字符串。
例如我有一个程序 "main" 函数定义为 wmain。
int wmain( int argc, wchar_t *argv[] ) {
wchar_t* lpModulePath = NULL;
wchar_t* lpFunctionName = NULL;
lpModulePath = argv[1];
lpFunctionName = argv[2];
}
并且当然使用 wchar_t 类型。我怎样才能写一个函数
int main( int argc, char *argv[] )
将作为char传递的参数转换为wchar_t然后自己调用wmain?
谢谢
在 Windows 上您可以使用 GetCommandLineW()
和 CommandLineToArgvW()
:
int main(int argc, char* argv[])
{
wchar_t** wargv = CommandLineToArgvW(GetCommandLineW(), &argc);
int ret = wmain(argc, wargv);
LocalFree(wargv);
return ret;
}
在 Linux 恐怕你必须分配数组并在循环中转换字符串。