vc++编写的程序检查无问题,但一编译就出错?

来源:百度知道 编辑:UC知道 时间:2024/06/23 03:07:00
我用vc++编写了一个程序,运行的时候显示没有错误:--------------------Configuration: p1 - Win32 Debug--------------------
Compiling...
App.cpp
sample.cpp
Linking...

p1.exe - 0 error(s), 0 warning(s)

但一链接完就报错,出现一个对话框,提示:
p1.exe遇到问题需要关闭。我们对此引起的不便表示抱歉。
(源代码来自http://www.bianceng.cn/vc/v5.htm,我对其进行了些许修改,修改后的代码如下:

//App.cpp
#include "stdafx.h"
#include "App.h"
#include "sample.h"

App::App()
{

}

App::~App()
{

}

App::InitInstance()
{
MessageBox(0,"My MFC Window","InitInstance",MB_OK|MB_ICONASTERISK);
sample *obj;
obj=new sample;
m_pMainWnd=obj;
obj->ShowWindow(SW_SHOW);
return TRUE;
}

//sample.cpp
#include "sample.h"

sample::sample()
{

你好,你的问题我刚刚看到,希望现在回答你还不迟。

如你所说,你的代码编译连接都能通过,可就是运行不起来。问题出在哪里呢?

你在App.cpp的最后加入一行代码:
App a;

再编译运行,OK了吧。对了,问题就处在这小小的a上了。等你学了MFC运行的原理之后你就会明白,你至少要实例化一个应用程序类,得到一个App的对象,MFC才知道如何开始运行,如何消息映射。而你原来的代码恰恰缺少这样一个实例化了的App对象。