第一个windows窗口小程序

#include <Windows.h>

int WINAPI WinMain(HINSTANCE hlnstance,HINSTANCE hPrelnstance,LPSTR lpCmdLine,int nCmdShow)
{
	//MessageBox()分两个版本:MessageBoxA() 和 MessageBoxW() 版本。
	//如果使用 char,那么应该用MessageBoxA();如果用 WCHAR,那么用MessageBoxW();如果用模板TCHAR,那么MessageBox()。
	int result = MessageBox(NULL, "你是猪吗","小游戏", MB_YESNO| MB_ICONWARNING);
	if (IDYES == result)
	{
		MessageBox(NULL, "恭喜你,答对了!", "结果", MB_YESNO | MB_ICONWARNING);
	}
	else if(IDNO == result)
	{
		MessageBox(NULL, "不好意思,错啦!", "结果", MB_YESNO | MB_ICONWARNING);
	}
	return 0;
}
遇到的问题:
1.生成窗口都是乱码
MessageBox()分两个版本:MessageBoxA() 和 MessageBoxW() 版本。如果使用 char,那么应该用MessageBoxA();如果用 WCHAR,那么用MessageBoxW();如果用模板TCHAR,那么MessageBox()。
当字符集为Unicode时,MessageBox() = MessageBoxW(),其他MessageBox() = MessageBoxA()。
将MessageBox()换成MessageBoxA()解决。
还搜到一篇讲wchar与char区别和转换的文章:
http://www.cnblogs.com/MichaelOwen/articles/2128771.html


2.编译时提示:“无法解析的外部符号 _main,该符号在函数 ___tmainCRTStartup 中被引用”。
产生这个问题可能的原因
a.用vc建了一个控制台程序,它的入口函数应该是main, 而使用了WinMain.
b.用vc打开了一个.c/.cpp 文件,然后直接编译这个文件,这个文件中使用了WinMian而不是main作为入口函数。vc这时的默认设置是针对控制台程序的。
vs里项目那右键 项目-属性-链接器-系统-子系统  里的“控制台”改为“窗口”后好了。


3.MessageBox()第四个参数
几个常量同时显示用“|”。
发布了16 篇原创文章 · 获赞 10 · 访问量 7952
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览