wWinmain,Unicode和Mingw

con*_*ych 14 c++ mingw

我正在学习Windows API,并使用mingw作为我的编译器,Code :: Blocks作为我的IDE.我遇到了使用wWinMain函数的问题.我使用了这里的程序链接文本.它在VSC++ 2008 express上编译得很好但是在使用mingw时我得到了"未定义的WinMain @ 16引用"错误.我已经弄清楚问题是什么(我认为).通过仅使用Winmain替​​换wWinMain,使用LPSTR替换字符串指针PWSTR,它可以完美地编译.我的问题是,我该如何解决这个问题,如果没有,那就不是使用Unicode了.

谢谢.

XP1*_*XP1 26

对于旧版本的MinGW,您可以使用包装器:

MinGW的支持unicode的主:

https://github.com/coderforlife/mingw-unicode-main/

在MinGW中添加wmain和wWinMain支持的简单包装器

这些包装器允许在MinGW中使用wmain/wWinMain与Unicode(WCHAR),常规(CHAR)或选择(TCHAR)的能力无缝地使用.

使用它们的说明在文件中.另请查看使用它们的其他程序.


对于MinGW的新版本,您应该使用该-municode选项,就像在mingw-unicode-main自述文件中所述:

注意:这应该不再使用,因为MinGW现在有一个内置的解决方案.将-municode添加到命令行(可能将外部"C"添加到wmain函数).

-municode选项适用于MinGW-w64.在2012-07,当我尝试MinGW时,它没有-municode选项.

以下是如何安装MinGW-w64:

目标Win32:

目标Win64:


与Unicode相关的问题:

  • 可能值得补充的是,`-municode`是***链接器*设置**. (4认同)

Bil*_*eal 16

使用plain(非unicode)WinMain函数,然后使用unicode命令行GetCommandLineW.MinGW不知道wWinMain.

你可能会发现在MinGW上工作很困难; 我用它它不支持大部分的最后一次wchar_t的C++标准库的组件(即std::wifstream,std::wstring等),这让使用Unicode的Windows接口位困难.

你有什么反对MSVC的吗?

  • @JAKE:使用MSVC Express Editions构建的软件类型没有限制.完整版和快速版之间的唯一区别是完整版具有*显着*更多功能,例如安装MSVC插件(即Visual Assist X)的能力.但是对编译的代码没有任何限制 - 它不是来自Visual Studio,而是来自Windows SDK. (7认同)