高手进!!!VC++问题!!解决有加分!!!

来源:百度知道 编辑:UC知道 时间:2024/05/28 12:15:51
已知API程序如下,运行时总是出现错误!!!
#include<windows.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
#define Pi 3.1415926
long WINAPI WndProc(HWND hWnd,UINT Message,UINT wParam,LPARAM lParam);
double dfTheta=0,dfRange=100.0;
long i=0,j=0;
long lCenterX=0,lCenterY=0,lRadious=(long)(0.2*dfRange);
POINT lpSin[100];
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)
{
HWND hWnd;
MSG Message;
WNDCLASS WndClass;
char lpszClassName[]="SIN";
char lpszTitle[]="4_6";
WndClass.style=0;
WndClass.lpfnWndProc=WndProc;
WndClass.hInstance=hInstance;
WndClass.cbClsExtra=0;
WndClass.cbWndExtra=0;
WndClass.hIcon=LoadIcon(NULL,IDI_APPLICATION);
WndClass.hCursor=LoadCursor(NULL,IDC_ARROW);
WndClass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);
WndClass.lpszClassName=(LPCWSTR)lps

以下方法可以让你通过编译
1.选择Project-->>Setting,Link选项卡,删除Project Options里面的/subsystem:console,保存

2.把long WINAPI WndowProc(HWND hWnd,UINT Message,UINT wParam,LPARAM lParam) 函数放到main前面,去掉之前的函数声明

3.main里面 WndClass.lpfnWndProc=WndProc; 这个WndProc名字不对,应该是wndowproc(这个名字是你自己起的啊)

我运行会挂,没有给你调适 你自己看看吧 编译应该没有问题

//--------------------
//重要补充
//为了这个分 我拼了
//下面补充让你能运行
//-------------------
我刚才调试了 你main里面少了一句
WndClass.lpszMenuName = NULL;
没有这一句在注册窗口时会失败
加上就好了
运行起来挺好看的,不错

//--------------------
//4.16 再次补充
//----------------------
我新建立控制台应用程序
复制你的代码
做了上面的修改
运行后就可以了
但是有个重要问题告诉你下
你的窗口销毁有问题,虽然看不见了 但是进程里面还有,我昨天调试后发现机器速度慢了,在进程里面发现还有东西在运行,这一点你注意下

WndProc函数只有声明没有定义,要定义才可以,把程序里的 WndowProc改成WndProc,肯定是你写错了

long WINAPI WndProc(HWND hWnd,UINT Message,UINT wParam,LPARAM lParam);
改为:
long WINAPI WndowProc(HWND hWnd,UINT Message,UINT wParam,LPARAM lParam