菜鸟菜问题:lib是否相当于java中的jar,h文件是否相当于java中的interface,如何查看lib中有哪些内容
java 和 c c++ 的对比
谁有这样的文章
问题点数:20、回复次数:8Top
1 楼steedhorse(晨星)回复于 2003-09-03 11:00:26 得分 20
我的建议是学习C++时,不要和Java做细节上的类比,因为当年两者根本就不是通过对比来发明的。完全可以认为他们没有关系。
当然,面向对象的思想还是相通的。
lib中的内容属于商业机密,通常不能查看。如果不是机密,人家也就不用编译成lib了,直接给CPP源文件不就得了?Top
2 楼Computer_lover(水中鱼)回复于 2003-09-03 11:27:14 得分 0
to steedhorse(晨星):
看得出你在c++方面的水平还好,其实我也是病急乱投医,我是做java的,c和c++一点不熟
昨天公司给了我几个h文件和lib文件,让我看看,我也不知从何入手
h文件定义了一些接口,lib文件中会不会包含对这些接口的实现细节?
请帮忙Top
3 楼steedhorse(晨星)回复于 2003-09-03 12:03:20 得分 0
h文件定义了一些接口,lib文件中会不会包含对这些接口的实现细节?
是的,就是这样。
C/C++编译器编译源文件生成目标文件的方式和Java略有不同,它分为编译和连接两步。
没有头文件,就无法编译,没有lib文件,就无法连接。
编程成的可执行文件可以直接在操作系统上运行,而不是像Java哪像通过虚拟机来装载类文件,然后解释执行。Top
4 楼steedhorse(晨星)回复于 2003-09-03 12:04:11 得分 0
“看得出你在c++方面的水平还好”
非常遗憾,您看错了,(:Top
5 楼Computer_lover(水中鱼)回复于 2003-09-03 13:02:14 得分 0
不好意思,还有一个问题:
lib和dll是不是都包含对h文件的实现,只不过封装形式不同而已?
编写实际应用程序的时候,只要装载其中的一个就可以,这样说对不对?Top
6 楼steedhorse(晨星)回复于 2003-09-03 13:08:12 得分 0
lib是给编译器链接用的,通常lib中包含各个接口跟dll或其它模块中的具体地址的映射,程序发布时,只包含dll就可以了。
而如果没有lib,只有dll,编译器无法链接。因为编译器不懂如何直接到dll中去找接口的实现。Top
7 楼Computer_lover(水中鱼)回复于 2003-09-03 14:29:20 得分 0
哦,那就是说lib是h文件和dll之间的桥梁
是这样吗?Top
8 楼Wolf0403(废人:独活十年~心如刀割)回复于 2003-09-03 14:41:23 得分 0
呵呵,bingoTop




