Win32编程问题一,“WinMain”: 无法重载函数

刚刚开始学习Win32编程,没想到在主函数上面就出现了问题,真是伤心啊!
事情是这样滴~我用vs2013创建了一个空的win32程序项目和一个自带窗口代码的项目,参考有代码的项目,自己写了代码,结果却显示“WinMain”: 无法重载函数。

#include
int WINAPI WinMain(HINSTANCE hInstance, 
HINSTANCE hprevInstance, 
LPTSTR cmdstr, 
int code)
{
	MessageBoxA(NULL, "你好", "问候",MB_OKCANCEL);
	return 0;
}//这是有问题的代码

经过一番折腾,最终我发现了原因,主要是因为字符集的问题。

当采用WinMain作为入口函数时,第三个参数类型应定义为LPSTR,表示CHAR *型

当采用_tWinMain作为入口函数时,第三个参数类型应定义为 LPTSTR ,表示 WCHAR *型

#include
int WINAPI WinMain(HINSTANCE hInstance, 
HINSTANCE hprevInstance, 
LPSTR cmdstr, 
int code)
{
	MessageBoxA(NULL, "你好", "问候",MB_OKCANCEL);
	return 0;
}//这是正确代码

关注微信公众号:C语言Plus(C-P-Plus) 获取更多学习资料哦!

你可能感兴趣的:(Win32)