新人,刚开始学可视化编程,求助!!谢谢!!!
我们刚学可视化编程,用的是《VisualC++面向对象与可视化程序设计》,黄维通的,运行第一个程序即出现问题。
这是代码:
#include<windows.h>
LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);/*窗口说明*/
//--------------以下初始化窗口类-----------
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInst,LPSTR lpszCmdLine,int nCmdShow)
{
HWND hwnd;
MSG Msg;
WNDCLASS wndclass;
char lpszClassName[]="窗口"; /* 窗口类名*/
char lpszTitle[]="My_Windows"; /*窗口标题名*/
/*窗口类的定义*/
wndclass.style=0; /*窗口类型为默认型*/
wndclass.lpfnWndProc=WndProc; /*窗口处理函数为WndProc*/
wndclass.cbClsExtra=0; /*窗口类无扩展*/
wndclass.cbWndExtra=0; /*窗口实例无扩展*/
wndclass.hInstance=hInstance; /*当前实例句柄*/
wndclass.hIcon=LoadIcon(NULL,IDI_APPLICATION);/*窗口最小化图标为默认图标*/
wndclass.hCursor=LoadCursor(NULL,IDC_ARROW);/*窗口采用箭头光标*/
wndclass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);/*窗口背景为白色*/
wndclass.lpszMenuName=NULL; /*窗口中无菜单*/
wndclass.lpszClassName=lpszClassName;/*窗口类名为“窗口实例”*/
/*-------------以下进行窗口类的注册---------------*/
if(!RegisterClass(&wndclass))/*如果注册失败,则发出警告声音*/
{
MessageBeep(0);
return FALSE;
}
/*------------------创建窗口----------------------*/
hwnd=CreateWindow(
lpszClassName,/*窗口类名*/
lpszTitle,/*窗口实例的标题名*/
WS_OVERLAPPEDWINDOW,/*窗口的风格*/
CW_USEDEFAULT,
CW_USEDEFAULT,/*窗口左上角坐标为默认值*/
CW_USEDEFAULT,
CW_USEDEFAULT,/*窗口的高和宽为默认值*/
NULL,/*此窗口无父窗口*/
NULL,/*此窗口无主菜单*/
hInstance,/*创建此窗口当前应用程序的当前句柄*/
NULL,/*不适用该值*/
);
ShowWindow(hwnd,nCmdShow);/*显示窗口*/
UpdateWindow(hwnd);/*绘制用户区*/
while(GetMessage(&Msg,NULL,0,0));/*消息循环*/
{
TranslateMessage(&Msg);
DispatchMessage(&Msg);
}
return Msg.wParam;/*程序终止时将信息返回给系统*/
}
//-------------------窗口函数--------------------
LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam)
{
switch(message)
{
case WM_DESTROY:
PostQuitMessage(0);/*调用PostQuitMessage发出WM_QUIT消息*/
default:/*默认时采用系统消息默认处理函数*/
return DefWindowProc(hwnd,message,wParam,lParam);
}
return(0);
}
[b]这个程序在VC++6.0中完美运行,但是在VS2010中却出现错误,主要是在红色区域的两句,都出现同一错误,说不能将char*类型的值赋给LPCWSTR*类型的实体,老师说这是两者不兼容导致的,需要修改,但我不知道怎么改,求各位帮忙,谢谢啊!!!
[解决办法]
把工程改成多字节编码的
[解决办法]
工程属性里面把unicode那个设置为多字节就可以了