2010-03-13 23 views

回答

9

main的唯一标准的签名是:

int main(void); 
int main(int argc, char *argv[]); 

然而,一个独立的实现可以提供扩展/允许其他签名。但这些不是可携带的。 wmain看起来像一个Windows/VS的东西。这对于一个* nix/GNU GCC没有太大的机会。

2

wmain()是windows特有的。就像_tmain,如果该事项...

9

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

如果你想不需要Unicode的命令行参数的便携式控制台应用程序,使用main。如果您确实需要Unicode命令行参数,那么您需要预处理器指令来启用适用于每个环境的签名。

如果你是一个跨平台的GUI应用程序,使用一个特殊的框架,像QT。

相关问题