c - main() 包装器启动 main() 程序以从命令行编译它

标签 c program-entry-point wmain

例如,我有一个程序,其“主”函数定义为 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 上,恐怕你必须在循环中分配数组并转换字符串。

关于c - main() 包装器启动 main() 程序以从命令行编译它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52442462/

相关文章:

java - Java Web 应用程序中的主要方法?

java - 非静态变量,不能从 main 方法中的静态上下文中引用

c++ - 如何发出包含 'suspicious' 和 '-Wmain' 字样的警告?

c - 如何在 VC++ 2005 中定义 HAVE_STDIO_H?

c - 链接功能不会按预期将最大项目放在列表的末尾

c - 有没有办法从 C 应用程序与驱动程序通信?

c - 'function' 的先前声明在 C 中

c++ - 未定义对 `main' 的引用 - 但包含主要功能

c++ - wmain 和 main 有什么区别?