首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

2003的工程在2005中竟然编译不过去,如何解决

2012-03-18 
2003的工程在2005中竟然编译不过去,怎么解决啊我这段代码在2003中没有问题,在2005中编译不通过。而且wc.lps

2003的工程在2005中竟然编译不过去,怎么解决啊
我这段代码在2003中没有问题,在2005中编译不通过。而且
wc.lpszClassName的类型明明是LPCTSTR,编译竟然提示我:
cannot   convert   parameter   2   from   'const   char   [5] '   to   'LPCWSTR ',
难道是MSDN有问题,还是我的编译方式不对,好奇怪,
#include <windows.h>
LRESULT   CALLBACK   WndProc
(   HWND   hwnd,
    UINT   uMsg,
    WPARAM   wParam,
    LPARAM   lParam
);
int   WINAPI   WinMain(HINSTANCE   hInstance,
        HINSTANCE   hPrevInstance,
        LPSTR   lpCmdLine,
        int   nCmdShow
)
{
WNDCLASS   wc;
wc.cbClsExtra=0;
wc.cbWndExtra=0;
wc.hbrBackground=(HBRUSH)::GetStockObject(WHITE_BRUSH);
wc.hCursor=::LoadCursor(NULL,IDC_ARROW);
wc.hInstance=hInstance;
wc.lpfnWndProc=WndProc;
wc.lpszClassName= "Draw "
wc.lpszMenuName=NULL;
wc.hIcon   =   LoadIcon   (NULL,   IDI_APPLICATION);
wc.style=CS_HREDRAW   |   CS_VREDRAW;
if(!RegisterClass(&wc))
{
::MessageBox(NULL, "窗口注册失败 ", "提示 ",MB_OK);
}
HWND   hwnd=::CreateWindow( "Draw ", "画图板 ",WS_OVERLAPPEDWINDOW   ,
                                    CW_USEDEFAULT,   CW_USEDEFAULT,
                                                    CW_USEDEFAULT,   CW_USEDEFAULT,
                                                    NULL,   NULL,   hInstance,   NULL)   ;
::ShowWindow(hwnd,nCmdShow);
::UpdateWindow(hwnd);
MSG   msg;
while(GetMessage(&msg,NULL,0,0))
{
    TranslateMessage   (&msg)   ;
                    DispatchMessage   (&msg)   ;
}
return   msg.wParam;
}
LRESULT   CALLBACK   WndProc
(   HWND   hwnd,
    UINT   uMsg,
    WPARAM   wParam,
    LPARAM   lParam
)
{
HDC   hdc;
HWND   hToolBar;
PAINTSTRUCT   ps;
switch(uMsg)
{
case   WM_PAINT:
hdc=BeginPaint(hwnd,&ps);
::EndPaint(hwnd,&ps);
return   0;
case   WM_DESTROY:
PostQuitMessage(0);
return   0;
default:
return   ::DefWindowProc(hwnd,uMsg,wParam,lParam);
}
}

[解决办法]
Project -> Properties -> Configuration Properties -> General -> Character Set
选择Use Multi-Byte Character Set
[解决办法]
Project -> Properties -> Configuration Properties -> General -> Character Set
选择Use Multi-Byte Character Set

补充:
项目-属性-链接器-系统-子系统-把控制台该为windows

[解决办法]
楼上们正解。
或者将2003工程用右键选择vs 2005 打开,vs2005 会自动进行转换。
------解决方案--------------------


Project -> Properties -> Configuration Properties -> General -> Character Set
选择Use Multi-Byte Character Set

热点排行