我们可以在Unix编译器中使用wmain()函数,还是只能在windows上使用?

Rel*_*lla 10 c c++ unix widestring wmain

我们可以在Unix编译器中使用wmain()函数,还是只在\ for windows上使用?

dir*_*tly 10

唯一的标准签名main是:

int main(void);
int main(int argc, char *argv[]);
Run Code Online (Sandbox Code Playgroud)

但是,独立实现可以提供扩展/允许其他签名.但那些便携设备并不保证.wmain看起来像Windows/VS的东西.这对于*nix/GNU GCC来说没有多大机会.


Don*_*eba 10

wmain签名在Windows的存在是为了处理宽字符的命令行参数.通常,虽然Windows应用程序更喜欢UTF16,但Unix应用程序更喜欢使用UTF8进行Unicode字符串编码.UTF8使用常规char字符串,因此标准main签名足以​​支持Unicode识别的Unix应用程序.

如果要创建不需要Unicode命令行参数的可移植控制台应用程序,请使用main.如果确实需要Unicode命令行参数,则需要预处理程序指令来启用适合每个环境的签名.

如果您正在制作跨平台GUI应用程序,请使用特殊框架,如QT.