There is a long long road for you, but don't give up !
to: iamwjp(小虾),我说小虾是一种广泛的称谓而已,想不到碰碰到了大爷你的名头,哈~~小第给你赔礼了!(3鞠躬) to: zhq2000(俗子) C是不常用,但这些错误都能看出来(缺;),我调试的时候也一一试过,可惜还不行,可能是没看出来1. HINSTAHCE 应为 HINSTANCE,所以错误多多....(我再试试)我按他给出来也就象rocmeteor(流星雨)说的一样,买了一本DDDDDD版的《精通VC++6.0》,而且我发现的错误还很多很多,连用来擦屁股都觉得太菜了,还是烧了算!!!不知是我买了D版还是本来就这样,错误是每页都有! to: rocmeteor(流星雨),还是你了解,哈哈~~~不知你是不是也受过这种苦~~~~ 小第刚学VC++,请给为给小第推荐几本好的初中级的VC++/C++的书,好吗?谢谢楼上各位兄弟!!!我再加50分!
连“小虾”这个名字也有人争!
太过分了!HINSTANCE 不是 HINSTAHCE;LRESULT CALLBACK WindowProc(
HWND hWnd,
UINT uMsgId,
WPARAM wParam,
LPARAM lParam
); //此处多了一个 ;总之,很多粗心犯的错误,仔细一点改正。
int WinMain(
HINSTAHCE hInstance,
HINSTAHCE hPrevInstance,
LPSTR pszCmdLine,
int nCmdShow);
*** 这里不能有 ';' 符号
{
.....
}
改为:
int WinMain(
HINSTAHCE hInstance,
HINSTAHCE hPrevInstance,
LPSTR pszCmdLine,
int nCmdShow)
{
.....
}4. 与3一样,改为
LRESULT CALLBACK WindowProc(
HWND hWnd,
UINT uMsgId,
WPARAM wParam,
LPARAM lParam
)
{
....
}5.看来你的C还不熟悉!
iamwjp(小虾),我说小虾是一种广泛的称谓而已,想不到碰碰到了大爷你的名头,哈~~小第给你赔礼了!(3鞠躬)
to:
zhq2000(俗子)
C是不常用,但这些错误都能看出来(缺;),我调试的时候也一一试过,可惜还不行,可能是没看出来1. HINSTAHCE 应为 HINSTANCE,所以错误多多....(我再试试)我按他给出来也就象rocmeteor(流星雨)说的一样,买了一本DDDDDD版的《精通VC++6.0》,而且我发现的错误还很多很多,连用来擦屁股都觉得太菜了,还是烧了算!!!不知是我买了D版还是本来就这样,错误是每页都有!
to:
rocmeteor(流星雨),还是你了解,哈哈~~~不知你是不是也受过这种苦~~~~ 小第刚学VC++,请给为给小第推荐几本好的初中级的VC++/C++的书,好吗?谢谢楼上各位兄弟!!!我再加50分!
我刚刚开始学VC++,我照着一本入门的书打了着一段代码,但编译总出错!错误如后面~~
我新键一个空的Win32 Application工程,然后加入如下的一个myprog1.cpp,但总没办法编译通过
希望各位大虾告知在下原因,不甚感激!
*/
//-------------
//程序名myprog1.cpp
//我的第一个windows程序
//--------------#include <windows.h>
//int WinMain(HINSTAHCE hInsTance,HINSTAHCE hPrevInstance,LPSTR pszCmdLine,int nCmdShow);
LRESULT CALLBACK WindowProc(HWND hWnd,UINT uMsgId,WPARAM wParam,LPARAM lParam);int WINAPI WinMain(
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR pszCmdLine,
int nCmdShow){
static char szAppName[]="MyProg1"; //程序名
HWND hWnd; //窗口句柄
MSG msg; //消息类型
WNDCLASS wndClass; //窗口类型
//注册
//通常只要一次
wndClass.lpszClassName=szAppName;
wndClass.hInstance=hInstance;
wndClass.lpfnWndProc=WindowProc;
wndClass.hIcon=LoadIcon(NULL,IDI_APPLICATION);
wndClass.hCursor=LoadCursor(NULL,IDC_ARROW);
wndClass.lpszMenuName=NULL;
wndClass.hbrBackground=GetStockObject(WHITE_BRUSH);
wndClass.style=CS_HREDRAW|CS_VREDRAW;
wndClass.cbClsExtra=0;
wndClass.cbWndExtra=0; if(RegisterClass(&wndClass)==0)//注册
{
return 0; //不能正确注册则退出
} //建立窗口
hWnd=CreateWindow(szAppName, //首先注册名称
szAppName, //窗口标题
WS_OVERLAPPEDWINDOW, //窗口类型
CW_USEDEFAULT, //窗口X位置
CW_USEDEFAULT, //窗口Y位置
CW_USEDEFAULT, //窗口X长度
CW_USEDEFAULT, //窗口Y长度
(HWND)NULL, //父窗口的句柄
(HMENU)NULL, //窗口菜单的句柄
hInstance, //当前窗口程序句柄
(LPSTR)NULL); //所用参数
if(hWnd==0)
{
return 0;
}
//显示窗口
ShowWindow(hWnd,nCmdShow); UpdateWindow(hWnd);
//消息循环
while (GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg); //翻译消息
DispatchMessage(&msg); //调度消息
}
return msg.wParam;
}
//---------------------------
//窗口处理函数
//---------------------------LRESULT CALLBACK WindowProc(
HWND hWnd,
UINT uMsgId,
WPARAM wParam,
LPARAM lParam
) {
static char *pszIam="我是一个程序员!";
switch(uMsgId)
{
case WM_PAINT:
HDC hDC;
PAINTSTRUCT paintStruct;
hDC=BeginPaint(hWnd,&paintStruct);
TextOut(hDC,
0,
0,
pszIam,
lstrlen(pszIam)
);
EndPaint(hWnd,&paintStruct);
return 0;
case WM_DESTROY:
PostQuitMessage(0);
return 0;
default:
return DefWindowProc(hWnd,uMsgId,wParam,lParam);
}
}
我把所有的可以知道的错误都改好了,现在还有一个错误,没办法解决,
//错误如下:
--------------------Configuration: myprog1 - Win32 Debug--------------------
Compiling...
myprog1.cpp
D:\profiles\phf\My Documents\vcProject\myprogtest\myprog1.cpp(36) : error C2440: '=' : cannot convert from 'void *' to 'struct HBRUSH__ *'
Conversion from 'void*' to pointer to non-'void' requires an explicit cast
Error executing cl.exe.myprog1.exe - 1 error(s), 0 warning(s)
我刚刚开始学VC++,我照着一本入门的书打了着一段代码,但编译总出错!错误如后面~~
我新键一个空的Win32 Application工程,然后加入如下的一个myprog1.cpp,但总没办法编译通过
希望各位大虾告知在下原因,不甚感激!
*/
//-------------
//程序名myprog1.cpp
//我的第一个windows程序
//--------------#include <windows.h>
//int WinMain(HINSTAHCE hInsTance,HINSTAHCE hPrevInstance,LPSTR pszCmdLine,int nCmdShow);
LRESULT CALLBACK WindowProc(HWND hWnd,UINT uMsgId,WPARAM wParam,LPARAM lParam);int WINAPI WinMain(
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR pszCmdLine,
int nCmdShow){
static char szAppName[]="MyProg1"; //程序名
HWND hWnd; //窗口句柄
MSG msg; //消息类型
WNDCLASS wndClass; //窗口类型
//注册
//通常只要一次
wndClass.lpszClassName=szAppName;
wndClass.hInstance=hInstance;
wndClass.lpfnWndProc=WindowProc;
wndClass.hIcon=LoadIcon(NULL,IDI_APPLICATION);
wndClass.hCursor=LoadCursor(NULL,IDC_ARROW);
wndClass.lpszMenuName=NULL;
wndClass.hbrBackground=GetStockObject(WHITE_BRUSH);
wndClass.style=CS_HREDRAW|CS_VREDRAW;
wndClass.cbClsExtra=0;
wndClass.cbWndExtra=0; if(RegisterClass(&wndClass)==0)//注册
{
return 0; //不能正确注册则退出
} //建立窗口
hWnd=CreateWindow(szAppName, //首先注册名称
szAppName, //窗口标题
WS_OVERLAPPEDWINDOW, //窗口类型
CW_USEDEFAULT, //窗口X位置
CW_USEDEFAULT, //窗口Y位置
CW_USEDEFAULT, //窗口X长度
CW_USEDEFAULT, //窗口Y长度
(HWND)NULL, //父窗口的句柄
(HMENU)NULL, //窗口菜单的句柄
hInstance, //当前窗口程序句柄
(LPSTR)NULL); //所用参数
if(hWnd==0)
{
return 0;
}
//显示窗口
ShowWindow(hWnd,nCmdShow); UpdateWindow(hWnd);
//消息循环
while (GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg); //翻译消息
DispatchMessage(&msg); //调度消息
}
return msg.wParam;
}
//---------------------------
//窗口处理函数
//---------------------------LRESULT CALLBACK WindowProc(
HWND hWnd,
UINT uMsgId,
WPARAM wParam,
LPARAM lParam
) {
static char *pszIam="我是一个程序员!";
switch(uMsgId)
{
case WM_PAINT:
HDC hDC;
PAINTSTRUCT paintStruct;
hDC=BeginPaint(hWnd,&paintStruct);
TextOut(hDC,
0,
0,
pszIam,
lstrlen(pszIam)
);
EndPaint(hWnd,&paintStruct);
return 0;
case WM_DESTROY:
PostQuitMessage(0);
return 0;
default:
return DefWindowProc(hWnd,uMsgId,wParam,lParam);
}
}
我把所有可以知道的错误都改了,现在还有一个没办法知道的错误 //错误如下:--------------------Configuration: myprog1 - Win32 Debug--------------------
Compiling...
myprog1.cpp
D:\profiles\phf\My Documents\vcProject\myprogtest\myprog1.cpp(36) : error C2440: '=' : cannot convert from 'void *' to 'struct HBRUSH__ *'
Conversion from 'void*' to pointer to non-'void' requires an explicit cast
Error executing cl.exe.myprog1.exe - 1 error(s), 0 warning(s)
改成
wndClass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);
试试
我看您的c语言还不过关。先把dos下的c学明白了在学windows的
改成
wndClass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);
试试
我看您的c语言还不过关。先把dos下的c学明白了在学windows的
改成
wndClass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);
试试
我看您的c语言还不过关。先把dos下的c学明白了在学windows的
改成
wndClass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);
试试
我看您的c语言还不过关。先把dos下的c学明白了在学windows的
//-------------
//程序名myprog1.cpp
//我的第一个windows程序
//--------------#include <windows.h>LRESULT CALLBACK WindowProc(HWND hWnd,UINT uMsgId,WPARAM wParam,LPARAM lParam);
int WINAPI WinMain(HINSTANCE hInsTance,HINSTANCE hPrevInstance,LPSTR pszCmdLine,int nCmdShow);int WINAPI WinMain(
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR pszCmdLine,
int nCmdShow)
{
static char szAppName[]="MyProg1"; //程序名
HWND hWnd; //窗口句柄
MSG msg; //消息类型
WNDCLASS wndClass; //窗口类型 //注册
//通常只要一次
wndClass.lpszClassName=szAppName;
wndClass.hInstance=hInstance;
wndClass.lpfnWndProc=WindowProc;
wndClass.hIcon=LoadIcon(NULL,IDI_APPLICATION);
wndClass.hCursor=LoadCursor(NULL,IDC_ARROW);
wndClass.lpszMenuName=NULL;
wndClass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);
wndClass.style=0;
wndClass.cbClsExtra=0;
wndClass.cbWndExtra=0;
if(RegisterClass(&wndClass)==0)//注册
return 0; //不能正确注册则退出 //建立窗口
hWnd=CreateWindow(szAppName, //首先注册名称
szAppName, //窗口标题
WS_OVERLAPPEDWINDOW, //窗口类型
100, //窗口X位置
100, //窗口Y位置
300, //窗口X长度
200, //窗口Y长度
NULL, //父窗口的句柄
NULL, //窗口菜单的句柄
hInstance, //当前窗口程序句柄
NULL); //所用参数
if(hWnd==0)
return 0; //显示窗口
ShowWindow(hWnd,nCmdShow);
UpdateWindow(hWnd); //消息循环
while (GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg); //翻译消息
DispatchMessage(&msg); //调度消息
} return msg.wParam;
}//---------------------------
//窗口处理函数
//---------------------------LRESULT CALLBACK WindowProc(
HWND hWnd,
UINT uMsgId,
WPARAM wParam,
LPARAM lParam
)
{
static char* pasIam = "我是一个程序员!";
switch(uMsgId)
{
case WM_PAINT:
HDC hDC;
PAINTSTRUCT paintStruct;
hDC=BeginPaint(hWnd,&paintStruct);
TextOut(hDC,
0,
0,
pasIam,
lstrlen(pasIam)
);
EndPaint(hWnd,&paintStruct);
return 0;
case WM_DESTROY:
PostQuitMessage(0);
return 0;
default:
return DefWindowProc(hWnd,uMsgId,wParam,lParam);
}
}
唉,我看了几本书,都没有要加类型转换(那些书都是很有名的),看来那写作者还不如你们这帮兄弟^_^
我不知道它是HBRUSH型的,我用了(HWND),结果错了.....
看来还是回头学学DOS下的 C了...