这样的程序居然有错!

wangtq 2000-09-08 11:07:00
咱是入门级的菜鸟,又一个问题请教各位大虾:
程序如下:
#include <iostream.h>

class vtest
{
public:
virtual void NameOf();
void InvokingClass();
vtest();
virtual ~vtest();

};

vtest::vtest()
{

};

vtest::~vtest()
{

};

void vtest::NameOf()
{

cout<<"Base::NameOf()\n";

};

void vtest::InvokingClass()
{

cout<<"Invoked by Base\n";

} ;



class Derived : public vtest
{
public:
void NameOf();
void InvokingClass();
Derived();
virtual ~Derived();

};

Derived::Derived()
{

};

Derived::~Derived()
{

};

void Derived::NameOf()
{

cout<<"Derived::NameOf()\n" ;

};

void Derived::InvokingClass()
{

cout<<"Invoked by Derived\n";

} ;


void main()
{

Derived aDerived;
Derived *pDerived=&aDerived;
vtest *pvtest=&aDerived;

pvtest->NameOf();
pvtest->InvokingClass();

pDerived->NameOf();
pDerived->InvokingClass();



}

在Win98 / VC++6.0中
编译通过;
连接时报告如下的错误:
--------------------Configuration: virtual - Win32 Debug--------------------
Compiling...
testmain.cpp
Linking...
LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16
Debug/virtual.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.

virtual.exe - 2 error(s), 0 warning(s)

期盼大虾们指点一二!
先行谢过!
...全文
193 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Holly 2000-09-08
  • 打赏
  • 举报
回复
到project->Settings->C/C++页->Category:General->preprocessor definitations:输入框中将_WINDOWS换成_CONSOLE(如果有_AFX_DLL要删掉)!
bigjim 2000-09-08
  • 打赏
  • 举报
回复
你的程序没有指定/D "_CONSOLE"而指定了 /D "_WINDOWS"。所以连接的时候编译器就去查找
WinMain(),当然找不到。我编译运行了你的程序,完全没有问题。方法是这样:拷贝上面的代码;打开VC,新建一个c/c++文件保存。编译,系统会问是否为它建立一个工程,选择是,连接,OK.
你也可以这样处理原来的工程:选择菜单Project-->Settings,切换到C/C++,看Project Options中是否有/D "_WINDOWS"?换成/D "_CONSOLE"
wangtq 2000-09-08
  • 打赏
  • 举报
回复
Thank you very much !
怎么给你加分?
坎坷的菜贩 2000-09-08
  • 打赏
  • 举报
回复
这是因为你新建工程时选的是窗口工程,比如Win32 application,换成Win32 console application就Ok了。

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧