#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把```
#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把```
但是我改了字符集之后报这样的错:
------ 已启动生成: 项目: 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”
e:\projects\winme\winme\win.cpp(63) : warning C4267: “参数”: 从“size_t”转换到“int”,可能丢失数据
e:\projects\winme\winme\win.cpp(70) : warning C4267: “参数”: 从“size_t”转换到“int”,可能丢失数据
这两个是什么意思?
TextOut(hdc,0,50,TEXT("计算机"),strlen(TEXT("计算机")));
这位大哥,说得极是.这样是可以的...
项目->XXX属性->配置属性->常规->字符集 选择"使用多字节字符集" 不要用"使用Unicode字符集"
UPING
窗口过程为"WinMe "字符串?应该是wndcls.lpfnWndProc=WinSunProc;
SDSDSDSD
CSDASDADADA