user-0 提问: create window

回复:
user: user-0
content: 多谢  另外我这个程序里面不能识别DestoryWindow函数，不知道他的头文件是什么，不是Window.h吗？

user: user-0
content: 简单说，vs2010怎么让生成窗口在编译时自动显示,运行调试时自动打开观察变量的窗口，运行结束后这些窗口全部自动隐藏

user: user-0
content: 再问个问题，vs2010怎么设置调试习惯，我看别人调试的时候自动跳出了好几个窗口，有一个是看各变量的值，有一个是看内存，那窗口是一个二维的内存序列，没访问的显示2个问号，访问过的内存显示当前的值，很帅有木有？还有其他窗口我忘了，不知道怎么设置这个东东？

user: user-0
content: 你说得对 第一次写窗口程序，得罪之处还望见谅

user: user-1
content: case WM_PAINT: 后面少了一个break,直接跳到WM_CLOSE了。 大哥，能不能自己调试一下？什么问题都不调试就上来问了？

user: user-0
content: #include <Windows.h> #include <stdio.h>   LRESULT CALLBACK WinSunProc( 	HWND hwnd,      // handle to window 	UINT uMsg,      // message identifier 	WPARAM wParam,  // first message parameter 	LPARAM lParam   // second message parameter 	);  int WINAPI WinMain( 	HINSTANCE hInstance,  // handle to current instance 	HINSTANCE hPrevInstance,  // handle to previous instance 	LPSTR lpCmdLine,      // pointer to command line 	int nCmdShow          // show state of window 	) {	 	//创建一个窗口类 	WNDCLASS wndcls; 	 	 	//额外参数 	wndcls.cbClsExtra=0; 	wndcls.cbWndExtra=0; 	//背景色 	wndcls.hbrBackground=(HBRUSH)GetStockObject(BLACK_BRUSH); 	//光标 	wndcls.hCursor=LoadCursor(NULL,IDC_ARROW); 	//图标 	wndcls.hIcon=LoadIcon(NULL,IDI_SHIELD); 	//应用程序实例号 	wndcls.hInstance=hInstance; 	//窗口过程函数 	wndcls.lpfnWndProc=WinSunProc; 	//类名 	//#include <tchar.h>	更多信息： http://bbs.csdn.net/topics/390631479?page=1 	wndcls.lpszClassName="weixin"; 	//菜单名 	wndcls.lpszMenuName=NULL; 	//风格 	wndcls.style=CS_HREDRAW|CS_VREDRAW;//水平重画 或上 垂直重画  	//注册 	RegisterClass(&wndcls);  	//创建窗口 	/*参考信息： 	CreateWindow 	该函数创建一个重叠式窗口、弹出式窗口或子窗口。它指定窗口类 	，窗口标题，窗口风格，以及窗口的初始位置及大小（可选的）。 	函数也指该窗口的父窗口或所属窗口（如果存在的话），及窗口的 	菜单。若要使用除CreateWindow函数支持的风格外的扩展风格，则 	使用CreateWindowEx函数代替CreateWindow函数。*/ 	HWND hwnd; 	hwnd=CreateWindow("weixin","北京维新科学技术中心",WS_OVERLAPPEDWINDOW,500, 		500,1000,600,NULL,NULL,hInstance,NULL);  	//显示窗口 	ShowWindow(hwnd,SW_NORMAL);  	//更新窗口 	UpdateWindow(hwnd);  	//消息循环 	MSG msg; 	while(GetMessage(&msg,NULL,0,0)) 	{ 		TranslateMessage(&msg); 		DispatchMessage(&msg); 	}  	return 0; }  LRESULT CALLBACK WinSunProc( 	HWND hwnd,      // handle to window 	UINT uMsg,      // message identifier 	WPARAM wParam,  // first message parameter 	LPARAM lParam   // second message parameter 	) { 	switch(uMsg) 	{ 	case WM_CHAR: 		char szChar[20]; 		sprintf_s(szChar,20,"Char is %d",wParam); 		MessageBox(hwnd,szChar,"weixin",0); 		break; 	case WM_LBUTTONDOWN: 		MessageBox(hwnd,"mouse is clicked!","weixin",0); 		HDC hdc; 		hdc=GetDC(hwnd); 		TextOut(hdc,50,120,"Mouse clicked！",strlen("Mouse clicked！")); 		ReleaseDC(hwnd,hdc); 		break; 	case WM_PAINT: 		HDC hdc1; 		PAINTSTRUCT ps; 		hdc1=BeginPaint(hwnd,&ps); 		TextOut(hdc1,50,50,"维新培训",strlen("维新培训")); 		EndPaint(hwnd,&ps); 	case WM_CLOSE: 		if(IDYES==MessageBox(hwnd,"真的要退出吗？","weixin",MB_YESNO)) 		{ 			DestroyWindow(hwnd); 		} 		break; 	case WM_DESTROY: 		PostQuitMessage(0); 	default: 		return DefWindowProc(hwnd,uMsg,wParam,lParam); 	} 	return 0; } 这是改好能够运行的代码，运行时出现了一个问题，在重绘窗口的时候提示退出，这是什么原因啊？

user: user-0
content: 额知道了，我是在控制台里面写的这个窗口程序

user: user-0
content: 额我打错了，改好之后还有问题： MSVCRT.lib(crtexe.obj) : error LNK2001: 无法解析的外部符号 _main 1>D:\Program Files\Microsoft Visual Studio\MyProjects\WinMain\Release\WinMain.exe : fatal error LNK1120: 1 个无法解析的外部命令  下面是代码，我实在找不到问题在哪里： #include <Windows.h> #include <stdio.h>   LRESULT CALLBACK WinSunProc( 	HWND hwnd,      // handle to window 	UINT uMsg,      // message identifier 	WPARAM wParam,  // first message parameter 	LPARAM lParam   // second message parameter 	);  int WINAPI WinMain( 	HINSTANCE hInstance,  // handle to current instance 	HINSTANCE hPrevInstance,  // handle to previous instance 	LPSTR lpCmdLine,      // pointer to command line 	int nCmdShow          // show state of window 	) {	 	//创建一个窗口类 	WNDCLASS wndcls; 	 	 	//额外参数 	wndcls.cbClsExtra=0; 	wndcls.cbWndExtra=0; 	//背景色 	wndcls.hbrBackground=(HBRUSH)GetStockObject(BLACK_BRUSH); 	//光标 	wndcls.hCursor=LoadCursor(NULL,IDC_ARROW); 	//图标 	wndcls.hIcon=LoadIcon(NULL,IDI_SHIELD); 	//应用程序实例号 	wndcls.hInstance=hInstance; 	//窗口过程函数 	wndcls.lpfnWndProc=WinSunProc; 	//类名 	//#include <tchar.h>	更多信息： http://bbs.csdn.net/topics/390631479?page=1 	wndcls.lpszClassName="weixin"; 	//菜单名 	wndcls.lpszMenuName=NULL; 	//风格 	wndcls.style=CS_HREDRAW|CS_VREDRAW;//水平重画 或上 垂直重画  	//注册 	RegisterClass(&wndcls);  	//创建窗口 	/*参考信息： 	CreateWindow 	该函数创建一个重叠式窗口、弹出式窗口或子窗口。它指定窗口类 	，窗口标题，窗口风格，以及窗口的初始位置及大小（可选的）。 	函数也指该窗口的父窗口或所属窗口（如果存在的话），及窗口的 	菜单。若要使用除CreateWindow函数支持的风格外的扩展风格，则 	使用CreateWindowEx函数代替CreateWindow函数。*/ 	HWND hwnd; 	hwnd=CreateWindow("weixin","北京维新科学技术中心",WS_OVERLAPPEDWINDOW,500, 		500,1000,600,NULL,NULL,hInstance,NULL);  	//显示窗口 	ShowWindow(hwnd,SW_NORMAL);  	//更新窗口 	UpdateWindow(hwnd);  	//消息循环 	MSG msg; 	while(GetMessage(&msg,NULL,0,0)) 	{ 		TranslateMessage(&msg); 		DispatchMessage(&msg); 	}  	return 0; }  LRESULT CALLBACK WinSunProc( 	HWND hwnd,      // handle to window 	UINT uMsg,      // message identifier 	WPARAM wParam,  // first message parameter 	LPARAM lParam   // second message parameter 	) { 	switch(uMsg) 	{ 	case WM_CHAR: 		char szChar[20]; 		sprintf_s(szChar,20,"Char is %d",wParam); 		MessageBox(hwnd,szChar,"weixin",0); 		break; 	case WM_LBUTTONDOWN: 		MessageBox(hwnd,"mouse is clicked!","weixin",0); 		HDC hdc; 		hdc=GetDC(hwnd); 		TextOut(hdc,50,120,"Mouse clicked！",strlen("Mouse clicked！")); 		ReleaseDC(hwnd,hdc); 		break; 	case WM_PAINT: 		PAINTSTRUCT ps; 		hdc=BeginPaint(hwnd,&ps);//这里用的是上一个case中的hdc 		TextOut(hdc,50,50,"维新培训",strlen("维新培训")); 		EndPaint(hwnd,&ps); 	case WM_CLOSE: 		if(IDYES==MessageBox(hwnd,"真的要退出吗？","weixin",MB_YESNO)) 		{ 			DestroyWindow(hwnd); 		} 		break; 	case WM_DESTROY: 		PostQuitMessage(0); 	default: 		return DefWindowProc(hwnd,uMsg,wParam,lParam); 	} 	return 0; }

user: user-2
content: DestoryWindow和DestroyWindow不是一回事！  关于自己是否适合编程的很简单的测试： 在报纸或杂志上随便找一段约1000字的文章，在Word中输入一遍。输完后再参考下面答案：  A里面有10处以上文字或标点错误 B里面没有文字或标点错误并敢为此跟人打赌 C里面没有文字或标点错误并且字体和排版完全与原稿一致 D打印在半透明的纸上和原稿重叠在一起检查一模一样，且自我感觉很有成就感  A不适合编程（理由：打字准确度偏低、粗心大意） B初级程序员（理由：打字准确度很高、认真细致、自信、理解全角半角概念） C高级程序员（理由：在B的基础上理解字体和排版也是电脑打印的重要因素、但相比D还不够偏执、精益求精、结果可验证） D软件项目经理（理由：能针对项目给出令人信服的细致到极点的需求说明和典型测试用例。用户几乎挑不出毛病。专业！）  如果想从A变成B的话，到我的资源http://download.csdn.net/detail/zhao4zhong1/4084259里面下载“适合程序员的键盘练习”

user: user-3
content: 引用 4 楼 wenbo228228 的回复:能说说为什么吗 unicode和多字节字符的区别啊。 unicode编码大致的说是每个字符占两个字节，英文字符也是，中文字符也是。每个字符相当于unsigned shor类型。 而多字节字符，英文只占一个字节，正文占两个字节，还是char类型。 所以类型不匹配

user: user-0
content: 能说说为什么吗

user: user-3
content: 引用 2 楼 wenbo228228 的回复:没用   我这个程序每个需要用字符串的地方都有这个错误提示：const char * 类型 的实参与 LPCWSTR 类型的形参不兼容，是不是我创建项目的时候设置错了，我创建项目的时候什么都没设置，是个空项目，所有的都是默认的呢 工程里面设置了使用的字符集是unicode造成的，按道理二楼的办法可以解决。不过每个字符串都要改。 也可以在工程里面设置成不使用unicode，VS2010的设置方法是：project->property...->configuration..->General->Character Set Use Multi-Byte Character Set 其他版本的VS也差不多。

user: user-0
content: 没用   我这个程序每个需要用字符串的地方都有这个错误提示：const char * 类型 的实参与 LPCWSTR 类型的形参不兼容，是不是我创建项目的时候设置错了，我创建项目的时候什么都没设置，是个空项目，所有的都是默认的呢

user: user-4
content: "..." 修改成 _T("...")