vc++6.0进行API编程?
请问高手,用vc++6.0进行API编程,我打开vc->新建->选win32application->填好工程名称,位置->选anemptyproject->此时代码区是...
请问高手,用vc++6.0进行API编程,我打开vc->新建->选win32 application->填好工程名称,位置->选an empty project->
此时代码区是灰色的,再新建一个文件->代码区变成白色,把以下代码放进去:
#include<windows.h>
LPCTSTR lpszAppName=TEXT("my app");
LPCTSTR lpszTitle=TEXT("my application");
LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,int nCmdShow)
{
MSG msg;
HWND hWnd;
WNDCLASS wc;
wc.style=CS_HREDRAW|CS_VREDRAW;
wc.lpfnWndProc=(WNDPROC)WndProc;
wc.cbClsExtra=0;
wc.cbWndExtra=0;
wc.hInstance=hInstance;
wc.hIcon=LoadIcon(NULL,IDI_APPLICATION);
wc.hIcon=LoadCursor(NULL,IDC_ARROW);
wc.hbrBackground=(HBRUSH)(COLOR_WINDOW+1);
wc.lpszMenuName=lpszAppName;
wc.lpszClassName=lpszAppName;
if(!RegisterClass(&wc))
return (FALSE);
hWnd=CreateWindow(lpszAppName,lpszTitle,WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,0,CW_USEDEFAULT,0,NULL,NULL,hInstance,NULL
);
if(!hWnd)
return (FALSE);
ShowWindow(hWnd,nCmdShow);
UpdateWindow(hWnd);
while (GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return (msg.wParam);
}
LRESULT CALLBACK WndProc(HWND hWnd,UINT uMsg,WPARAM wParam,
LPARAM lParam)
{
RECT rect;
HDC hdc;
PAINTSTRUCT ps;
static int uRed=0,uGreen=0,uBlue=0;
switch(uMsg)
{
case WM_PAINT:
hdc=BeginPaint(hWnd,&ps);
GetClientRect(hWnd,&rect);
SetTextColor(hdc,RGB(uRed,uGreen,uBlue));
DrawText(hdc,TEXT("hello,you are welcome"),-1,&rect,
DT_SINGLELINE|DT_CENTER|DT_VCENTER);
EndPaint(hWnd,&ps);
break;
case WM_KEYDOWN:
uRed=rand()%255;
uGreen=rand()%255;
uBlue=rand()%255;
InvalidateRect(hWnd,NULL,TRUE);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hWnd,uMsg,wParam,lParam);
}
return(0);
}
编译后没错误,但运行不了(can't excute program),如果按工具栏的"go"按钮的话,就出现了以下情况:
Loaded 'ntdll.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\kernel32.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\usp10.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\msvcrt.dll', no matching symbolic information found.
The thread 0x490 has exited with code 0 (0x0).
The program 'C:\DOCUMENTS AND SETTINGS\ADMINISTRATOR\桌面\1\Debug\1.exe' has exited with code 0 (0x0).
这是为什么啊,如果程序本身没错的话,要按什么步骤才能编译运行此程序呢
完整的情况如下:Loaded 'ntdll.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\kernel32.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\user32.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\gdi32.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\shimeng.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\imm32.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\advapi32.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\rpcrt4.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\lpk.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\usp10.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\msvcrt.dll', no matching symbolic information found.
The thread 0x490 has exited with code 0 (0x0) 展开
此时代码区是灰色的,再新建一个文件->代码区变成白色,把以下代码放进去:
#include<windows.h>
LPCTSTR lpszAppName=TEXT("my app");
LPCTSTR lpszTitle=TEXT("my application");
LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,int nCmdShow)
{
MSG msg;
HWND hWnd;
WNDCLASS wc;
wc.style=CS_HREDRAW|CS_VREDRAW;
wc.lpfnWndProc=(WNDPROC)WndProc;
wc.cbClsExtra=0;
wc.cbWndExtra=0;
wc.hInstance=hInstance;
wc.hIcon=LoadIcon(NULL,IDI_APPLICATION);
wc.hIcon=LoadCursor(NULL,IDC_ARROW);
wc.hbrBackground=(HBRUSH)(COLOR_WINDOW+1);
wc.lpszMenuName=lpszAppName;
wc.lpszClassName=lpszAppName;
if(!RegisterClass(&wc))
return (FALSE);
hWnd=CreateWindow(lpszAppName,lpszTitle,WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,0,CW_USEDEFAULT,0,NULL,NULL,hInstance,NULL
);
if(!hWnd)
return (FALSE);
ShowWindow(hWnd,nCmdShow);
UpdateWindow(hWnd);
while (GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return (msg.wParam);
}
LRESULT CALLBACK WndProc(HWND hWnd,UINT uMsg,WPARAM wParam,
LPARAM lParam)
{
RECT rect;
HDC hdc;
PAINTSTRUCT ps;
static int uRed=0,uGreen=0,uBlue=0;
switch(uMsg)
{
case WM_PAINT:
hdc=BeginPaint(hWnd,&ps);
GetClientRect(hWnd,&rect);
SetTextColor(hdc,RGB(uRed,uGreen,uBlue));
DrawText(hdc,TEXT("hello,you are welcome"),-1,&rect,
DT_SINGLELINE|DT_CENTER|DT_VCENTER);
EndPaint(hWnd,&ps);
break;
case WM_KEYDOWN:
uRed=rand()%255;
uGreen=rand()%255;
uBlue=rand()%255;
InvalidateRect(hWnd,NULL,TRUE);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hWnd,uMsg,wParam,lParam);
}
return(0);
}
编译后没错误,但运行不了(can't excute program),如果按工具栏的"go"按钮的话,就出现了以下情况:
Loaded 'ntdll.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\kernel32.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\usp10.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\msvcrt.dll', no matching symbolic information found.
The thread 0x490 has exited with code 0 (0x0).
The program 'C:\DOCUMENTS AND SETTINGS\ADMINISTRATOR\桌面\1\Debug\1.exe' has exited with code 0 (0x0).
这是为什么啊,如果程序本身没错的话,要按什么步骤才能编译运行此程序呢
完整的情况如下:Loaded 'ntdll.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\kernel32.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\user32.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\gdi32.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\shimeng.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\imm32.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\advapi32.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\rpcrt4.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\lpk.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\usp10.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\msvcrt.dll', no matching symbolic information found.
The thread 0x490 has exited with code 0 (0x0) 展开
4个回答
展开全部
将这句
wc.hIcon=LoadCursor(NULL,IDC_ARROW);
改成:
wc.hCursor=LoadCursor(NULL,IDC_ARROW);
就可以了。我也试过了!
在调试的时候,在某个位置设置一个“断点(按F9)”,然后按F5键,直接到该断点的位置上,看看有什么问题没有。再按F10,逐步追踪,这样调试,很快就可以找到这个错误了。也可以打开watch窗口进行追踪(打开方法View->Debug Windows->Watch)。在调试模式下才可以出现此窗口。
又有谁不是从未知到已知呢!!!一起进步!!!
wc.hIcon=LoadCursor(NULL,IDC_ARROW);
改成:
wc.hCursor=LoadCursor(NULL,IDC_ARROW);
就可以了。我也试过了!
在调试的时候,在某个位置设置一个“断点(按F9)”,然后按F5键,直接到该断点的位置上,看看有什么问题没有。再按F10,逐步追踪,这样调试,很快就可以找到这个错误了。也可以打开watch窗口进行追踪(打开方法View->Debug Windows->Watch)。在调试模式下才可以出现此窗口。
又有谁不是从未知到已知呢!!!一起进步!!!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你给出的都是很正常的提示。
你的程序没有显示是因为运行到这句时,不能注册窗口类,也就是说你的窗口类有问题。
if(!RegisterClass(&wc))
return (FALSE); // 运行这句程序就结束了。后面的都没有运行。
我可以肯定你的C和C++学得不好,很容易看出来。你不应这么早就学Win32 API了,不能急进。
你的程序没有显示是因为运行到这句时,不能注册窗口类,也就是说你的窗口类有问题。
if(!RegisterClass(&wc))
return (FALSE); // 运行这句程序就结束了。后面的都没有运行。
我可以肯定你的C和C++学得不好,很容易看出来。你不应这么早就学Win32 API了,不能急进。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
wc.hIcon=LoadIcon(NULL,IDI_APPLICATION);
wc.hIcon=LoadCursor(NULL,IDC_ARROW);
-----------------------------------------
就是这个吧
wc.hCursor=LoadCursor(NULL,IDC_ARROW);
wc.hIcon=LoadCursor(NULL,IDC_ARROW);
-----------------------------------------
就是这个吧
wc.hCursor=LoadCursor(NULL,IDC_ARROW);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询