在 MinGW 中使用 wWinMain 解决对 WinMain 的未定义引用 (C )
尝试用 int WINAPI wWinMain(HINSTANCE 替换 int main() 时hInstance、HINSTANCE、PWSTR pCmdLine、int nCmdShow)在使用 MinGW 作为编译器的 C 应用程序中,用户可能会遇到“未定义对 WinMain 的引用”错误消息。出现此错误的原因是 Visual C 和 MinGW 的 CRT 启动库之间存在差异,它们本身不支持 wWinMain 入口点。
解决方案:
对于较新版本的 MinGW ,将 -municode 链接器选项添加到命令行、IDE 中的链接器选项或 Makefile 将启用 wWinMain。
g++ other_options_and_arguments -municode
但是,对于缺乏 -municode 支持的旧版本 MinGW,解决方案是恢复使用标准 WinMain 函数。在这种情况下,代码可以修改如下:
<code class="c++">int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE, PSTR pCmdLine, int nCmdShow)</code>
注意:
虽然 Visual C 支持 wWinMain 入口点,其中“lpCmdLine”参数为一个“LPWSTR”,它通过要求使用预处理器定义而引入了额外的复杂性,并且使用起来可能更加麻烦。因此,在使用 MinGW 时,建议使用标准的 WinMain 函数,除非程序的具体要求需要使用 unicode 命令行。
以上是为什么我的 MinGW C 项目在使用 wWinMain 时抛出'未定义的 WinMain 引用”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!