#include "windows.h"
#include "stdio.h"
#include "stdafx.h"
LRESULT CALLBACK WinSunProc( 
    HWND hwnd,
    UINT uMsg,
    WPARAM wParam,
    LPARAM lParam
);int _stdcallWinMain(          HINSTANCE hInstance,
    HINSTANCE hPrevInstance,
    LPSTR lpCmdLine,
    int nCmdShow
){WNDCLASS wndcls;
wndcls.cbClsExtra=0;
wndcls.cbWndExtra=0;
wndcls.hbrBackground=(HBRUSH)GetStockObject(BLACK_BRUSH);
wndcls.hCursor=LoadIcon(NULL,IDI_ERROR);
wndcls.hInstance=hInstance;
wndcls.lpfnWndProc=WinSunProc;
wndcls.lpfnWndProc="WinMe";
wndcls.lpszMenuName=NULL;
wndcls.style=CS_HREDRAW | CS_VREDRAW;
RegisterClass(&wndcls);
HWND hwnd;
hwnd=CreateWindow("WinME",reinterpret_cast<LPCWSTR>("中国"),WS_OVERLAPPEDWINDOW,0,0,600,400,NULL,NULL,hInstance,NULL);
ShowWindow(hwnd,SW_SHOWNORMAL);
UpdateWindow(hwnd);MSG msg;
while(GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return 0;
}
LRESULT CALLBACK WinSunProc( 
    HWND hwnd,
    UINT uMsg,
    WPARAM wParam,
    LPARAM lParam
){
switch(uMsg){
case WM_CHAR:
char szChar[20];
    sprintf(szChar,"char is %d",wParam);
 MessageBox(hwnd,szChar,"weixin",0);
break;
case WM_LBUTTONDOWN:
      MessageBox(hwnd,"mouse clicked","weixin",0);
  HDC hdc;
  hdc=GetDC(hwnd);
  TextOut(hdc,0,50,"计算机",strlen("计算机"));
  ReleaseDC(hwnd,hdc);
break;
case WM_PAINT:
                HDC hDC;
            PAINTSTRUCT ps;
hDC=BeginPaint(hwnd,&ps);
TextOut(hDC,0,0,"程序学习",strlen("程序学习"));
EndPaint(hwnd,&ps);
break;
case WM_CLOSE:
if(IDYES==MessageBox(hwnd,"是否真的结束","weixin",MB_YESNO))
{
DestroyWindow(hwnd);
}
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hwnd,uMsg,wParam,lParam);

}
return 0;}这样的程序在vc++6.0跑的相当好`但是到了vc++2005里面就会出这样的问题:------ 已启动生成: 项目: winMe, 配置: Debug Win32 ------
正在编译...
我的实验.cpp
e:\projects\winme\winme\我的实验.cpp(26) : error C2440: “=”: 无法从“const char [6]”转换为“WNDPROC”
        没有使该转换得以执行的上下文
e:\projects\winme\winme\我的实验.cpp(33) : error C2664: “CreateWindowExW”: 不能将参数 2 从“const char [6]”转换为“LPCWSTR”
        与指向的类型无关;转换要求 reinterpret_cast、C 样式转换或函数样式转换
e:\projects\winme\winme\我的实验.cpp(57) : error C2664: “MessageBoxW”: 不能将参数 2 从“char [20]”转换为“LPCWSTR”
        与指向的类型无关;转换要求 reinterpret_cast、C 样式转换或函数样式转换
e:\projects\winme\winme\我的实验.cpp(60) : error C2664: “MessageBoxW”: 不能将参数 2 从“const char [14]”转换为“LPCWSTR”
        与指向的类型无关;转换要求 reinterpret_cast、C 样式转换或函数样式转换
e:\projects\winme\winme\我的实验.cpp(63) : error C2664: “TextOutW”: 不能将参数 4 从“const char [7]”转换为“LPCWSTR”
        与指向的类型无关;转换要求 reinterpret_cast、C 样式转换或函数样式转换
e:\projects\winme\winme\我的实验.cpp(70) : error C2664: “TextOutW”: 不能将参数 4 从“const char [9]”转换为“LPCWSTR”
        与指向的类型无关;转换要求 reinterpret_cast、C 样式转换或函数样式转换
e:\projects\winme\winme\我的实验.cpp(74) : error C2664: “MessageBoxW”: 不能将参数 2 从“const char [13]”转换为“LPCWSTR”
        与指向的类型无关;转换要求 reinterpret_cast、C 样式转换或函数样式转换
生成日志保存在“file://e:\Projects\winMe\winMe\Debug\BuildLog.htm”
winMe - 7 个错误,0 个警告
========== 生成: 0 已成功, 1 已失败, 0 最新, 0 已跳过 ==========大侠们怎么解决`` 快快帮帮小D把```

解决方案 »

  1.   

    我知道是什么意思了`
     但是我改了字符集之后报这样的错:
    ------ 已启动生成: 项目: winMe, 配置: Debug Win32 ------
    正在编译...
    Win.cpp
    e:\projects\winme\winme\win.cpp(26) : error C2440: “=”: 无法从“const char [4]”转换为“WNDPROC”
            没有使该转换得以执行的上下文
    e:\projects\winme\winme\win.cpp(63) : warning C4267: “参数”: 从“size_t”转换到“int”,可能丢失数据
    e:\projects\winme\winme\win.cpp(70) : warning C4267: “参数”: 从“size_t”转换到“int”,可能丢失数据
    生成日志保存在“file://e:\Projects\winMe\winMe\Debug\BuildLog.htm”
    winMe - 1 个错误,2 个警告
    ========== 生成: 0 已成功, 1 已失败, 0 最新, 0 已跳过 ==========
    这个错误到底怎么解决: error C2440: “=”: 无法从“const char [4]”转换为“WNDPROC”
      

  2.   

    哦不是是我打错了`是
    e:\projects\winme\winme\win.cpp(63) : warning C4267: “参数”: 从“size_t”转换到“int”,可能丢失数据
    e:\projects\winme\winme\win.cpp(70) : warning C4267: “参数”: 从“size_t”转换到“int”,可能丢失数据
    这两个是什么意思?
      

  3.   

    用了字符串的地方加上_T或TEXT宏,如:sprintf(szChar,TEXT("char is %d"),wParam);
    TextOut(hdc,0,50,TEXT("计算机"),strlen(TEXT("计算机")));
      

  4.   


    这位大哥,说得极是.这样是可以的...
    项目->XXX属性->配置属性->常规->字符集 选择"使用多字节字符集" 不要用"使用Unicode字符集"
      

  5.   

    学习项目->XXX属性->配置属性->常规->字符集 选择"使用多字节字符集" 不要用"使用Unicode字符集"
    UPING
      

  6.   

    wndcls.lpfnWndProc= "WinMe "; 
    窗口过程为"WinMe "字符串?应该是wndcls.lpfnWndProc=WinSunProc;
      

  7.   

    2005默认编码是UNICODE的,所以要注意
      

  8.   

    eerereewerw
    SDSDSDSD
    CSDASDADADA