编译通过,但无法运行,请高手指点入门菜鸟
sxrj 2006-08-08 02:30:59 我是一个纯粹自学VC的爱好者,身没有搞编程的人,现在用的教材是黄维通的<VISUAL C++面向对象与可视化程序设计>一书,但我做的程序却无法运行,
我建立程序的步骤如下:
1在新建对话框中选择PROJECTS标签,然后选择WIN32 APPLICATION选项,输入文件名以后点确实,在出现的WIN32 APPLICATION STEP 1 中选择AN EMPTY PROJECT,点完成
2打开工程以后,再用新建命令建立一个C++ SOURCE FILE文件,文件名ONE
3最后在相应的ONE.CPP下输入如下代码
//windows.h 文件包含应用程序中所需要的数据类型和数据结构定义
#include <windows.h>
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM,LPARAM);//窗口函数据说明
//---------以下为初始化--------
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInst,LPSTR lpszCmdLine,int nCmdShow)
{
HWND hwnd;
MSG Msg;
WNDCLASS wndclass;
char lpszClassName[]="窗口"; //窗口类名称
char lpszTitle[]="My_Windows"; //窗口标题名
//窗口类的定义
wndclass.style=0; //窗口类型为默认类型
wndclass.lpfnWndProc=WndProc; //窗口处理函数为WndProc
wndclass.cbClsExtra=0; //窗口类无扩展
wndclass.cbWndExtra=0; //窗口实例无扩展
wndclass.hInstance=hInstance; //当前实例句柄
wndclass.hIcon=LoadIcon(NULL,IDI_APPLICATION); //窗口最小化图标为默认图标
wndclass.hCursor=LoadCursor(NULL,IDC_ARROW); //窗口采用箭头光标
wndclass.hbrBackground=(HBRUSH) GetStockObject (WHITE_BRUSH); //窗口背景为白色
wndclass.lpszClassName=(NULL); //窗口中无菜单
wndclass.lpszClassName=lpszClassName; //窗口类名为“窗口示例”
//------以下进行窗口类注册------
if(!RegisterClass(&wndclass)) //如果注册失败则发出报警的声音
{
MessageBeep(0);
return FALSE;
}
//创建窗口
hwnd=CreateWindow( lpszClassName, //窗口类名
lpszTitle, //窗口实例的标题名
WS_OVERLAPPEDWINDOW,//窗口风格
CW_USEDEFAULT,
CW_USEDEFAULT, //窗口左上角坐标为默认值
CW_USEDEFAULT,
CW_USEDEFAULT, //窗口高度和宽度为默认值
NULL, //此窗口无父窗口
NULL, //此窗口无主菜单
hInstance, //创建此窗口应用程序的当前句柄
NULL //不使用该值
);
ShowWindow(hwnd, nCmdShow); //显示窗口
UpdateWindow(hwnd); //绘制用户区
while(GetMessage(&Msg,NULL,0,0)) //消息循环
{
TranslateMessage(&Msg);
DispatchMessage(&Msg);
}
return Msg.wParam; //程序终止时将住处返回系统
}
//窗口函数
LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch(message)
{
case WM_DESTROY:
PostQuitMessage(0); //调用PostQuitMessage发出WM_QUIT消息
default:
return DefWindowProc(hwnd, message, wParam, lParam);
}
return(0);
}
4编译结果没有错误,也没有警告,可一运行就出现"0X77E0D6F6"指令引用的"0XCCCCCCC"内存.该内存不能为"READ:.要终止程序请单击"确实",要调试程序,请单击"取消",单击取消后画面最终停止在一个黄箭头指向77E0D6F6 REPNE SCAS BYTE PTR[EDI]的地方
做为初学者,我反复检查没有看出问题出在那里,问题也许可笑,但还是希望能够得到高手的指点,谢谢大家了.