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

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) {

你可能感兴趣的:(MinGW 环境下的 Unicode 编译——更优雅的方式)