炫彩好望角 The Colorful Cape of Good Hope

庸人不必自扰,智者何需千虑?

常用链接

统计

最新评论

MinGW 环境下的 Unicode 编译——更优雅的方式

上次的代码虽然能够编译运行,但完全抛弃了 _tmain,看起来不怎么舒服。查看 MinGW 的头文件后,我发现 _tmain 的宏展开都是正确的,只是没有定义 wmain 而已。于是,只要像下面这样补上 wmain 的定义,就可以正常使用 _tmain 了:

  1. #if defined(__GNUC__) && defined(_UNICODE)
  2. extern int _CRT_glob;
  3. extern
  4. #ifdef __cplusplus
  5. "C"
  6. #endif
  7. void __wgetmainargs(int*, LPTSTR**, LPTSTR**, int, int*);
  8. int wmain(int argc, LPTSTR* argv, LPTSTR* envp);
  9. int main() {
  10.     int argc;
  11.     LPTSTR* argv;
  12.     LPTSTR* envp;
  13.     int si;
  14.     __wgetmainargs(&argc, &argv, &envp, _CRT_glob, &si);
  15.     return wmain(argc, argv, envp);
  16. }
  17. #endif
  18. int _tmain(int argc, LPTSTR* argv, LPTSTR* envp) {

posted on 2010-11-08 22:43 蜀山兆孨龘 阅读(2477) 评论(2)  编辑 收藏 引用 所属分类: Windows

评论

# re: MinGW 环境下的 Unicode 编译——更优雅的方式 2010-12-28 23:47 灰蓝天际

在 wmain(argc, argv, envp) 之前加 return 才更完美;
如果就现在这样的话,且不考虑返回值正确否,至少开启 -Wall 选项会出现 warning 的。  回复  更多评论   

# re: MinGW 环境下的 Unicode 编译——更优雅的方式 2010-12-31 23:04 蜀山兆孨龘

@灰蓝天际
确实如此。我写漏了,已更正……  回复  更多评论   


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理