第一次用VC就碰了头,前辈们快帮忙看看
一个简单的C++程序如下。
软件环境为VC++5.0企业版和WIN98系统,其中VC++5在安装时报告磁盘空间不够用,安装DAO出错。
在grass类定义的头文件里预编译等指令都保持系统自动生成的原样。
---------------grass.h--------------
class grass
{
private:
int height;
public:
grass(int height);
virtual ~grass();
int get_height();
};
-------------grass.cpp---------------
#include "iostream.h"
#include "grass.h"
grass::grass(int height=0)
{
this->height=height;
}
grass::~grass()
{
}
int grass::get_height()
{
return height;
}
void main()
{
grass grass1(10);
cout<<"grass1.height="<<grass1.get_height()<<endl;
}
-------------------------出现错误如下:----------------------
--------------------Configuration: learningC - Win32 Debug--------------
Compiling...
grass.cpp
Linking...
LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16
Debug/learningC.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.
learningC.exe - 2 error(s), 0 warning(s)
--------------大菜鸟问题----------------------------
1. unresolved external symbol _WinMain@16是怎么回事?我并没有动LIBCD.lib,也没有用_WinMain@16标号呀?
2. 在grass.cpp中并没有指明要连接LIBCD.lib为何系统会自动去连接?
3. 这个错误是我程序的错误还是系统带自的文件有错误,该如何解决?
新手上路还请各位前辈多加指点,谢谢!
问题点数:20、回复次数:5Top
1 楼USTCTony(Tony)回复于 2003-06-01 09:32:01 得分 10
建立空的工程时要是基于win32 console application 的。
不能是win32 application的。你的错误表明你建立空的工
程时是基于win32 application的。重新建立一个基于win32
application 的空工程,然后把你的程序拷贝过去就可以了。Top
2 楼rivershan(阿门)回复于 2003-06-01 09:36:17 得分 0
哈哈Top
3 楼windnet(南风)回复于 2003-06-01 10:27:54 得分 10
如USTCTony说的一样。建立工程时要新建一个console application 的。
而建立win32 application的工程时就需要一个好象在C中main()函数一样的
WinMain()函数。如果你要创建的是控制台应用程序就要建立console application~!
我以前也遇到过这样的问题。呵呵,同情你。。。
Top
4 楼netbug2(netbug2)回复于 2003-06-02 07:21:13 得分 0
多谢各位!能否进一步告知console application这个选项在那里选?我好像没找到。Top
5 楼netbug2(netbug2)回复于 2003-06-02 09:18:27 得分 0
当构造函数只有一个参数时在程序中给构造函数的参数赋初值(如下)好像没有实际用途。在实例化时如果grass2对象缺省初始参数,就会报错。如果定义重载无参构造函数又会报歧义错。我的看法对吗?
grass::grass(int height=0)
{
this->height=height;
}
grass grass1(10); //this->height被初始化成10
grass grass2; //报错'grass' : no appropriate default constructor available
grass grass(); //报错left of '.get_height' must have class/struct/union type
Top




