【发布时间】:2016-11-19 23:12:47
【问题描述】:
所以我尝试使用 Win32 在 CodeBlocks 中创建一个窗口,到目前为止只有这个版本的 WinMain 有效(注意:这只是一个简单而幼稚的示例):
#include <windows.h>
INT WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, INT nCmdShow ) {
MessageBox( NULL, "Title", "Message", MB_OKCANCEL );
return 0;
}
但是这个版本没有:
#include <windows.h>
INT WINAPI wWinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLine, INT nCmdShow ) {
MessageBox( NULL, "Title", "Message", MB_OKCANCEL );
return 0;
}
据我所知,后者期望第三个参数是指向宽字符字符串的指针,而前者则不然。但是当我在 CodeBlocks 中编译时,我得到的只是这条消息:
对 WinMain@16 的未定义引用
显然 CodeBlocks 期望 WinMain 版本不接收 LPWSTR 值作为参数。 我的问题是,如何配置 CodeBlocks 以使其与 wWinMain 一起编译?
【问题讨论】:
-
这是一个链接器错误,而不是编译器错误。您应该链接到包含相关函数的库。
标签: c++ winapi codeblocks winmain