c++ windows 蓝牙库_跟我学c++中级篇——Windows下的动态库

c++ windows 蓝牙库_跟我学c++中级篇——Windows下的动态库_第1张图片

一、Windows下的动态库

前面学习了Linux下的库的开发应用过程,现在回过头看看Windows。如果用比较容易明白的话来区别二者的不同的话,应该是“Windows平台的库混杂了微软自己很多的东西,看似简单,但比Linux下的库要复杂很多”。写过跨平台开发的程序都知道,在Windows平台下,动态库也要带着.lib文件,否则在编译链接时就会报错。
其实微软的想法非常简单,正如平时处理工具,把工具分得清楚明白不更好寻找和使用么。想法是很好的,可工具量少啊,如果工具海量并且经常更新换代,细节的管控,反而成为了累赘。这是什么意思呢?就是说在库本身的文件中,包含了大量的和细节相关的数据,比如符号的地址,库的类型等。
实际上在Windows平台上进行库编译时,需要根据不同的二进制文件来进行区分。.dll文件是真正的库文件,也就是和LINUX下的SO一样,是动态链接时的共享对象。那么为什么还要有一个.lib文件呢?原因就在于,微软为了方便链接,一些细节的符号表就在这个文件中,而在LINUX的动态库使用过程中,已经说明了,查找共享资源映射内存,这些符号表是必不可少的,到这里

你可能感兴趣的:(c++,windows,蓝牙库)