windows 动态库和linux动态库的一些东东
首先库是个什么东东额,有什么作用?
官方说法:库中都有一组实现好的函数接口,就是一些函数接口封装成库,方便调用
民间说法:我就是不让你看,咋的,保密,核心,保密...你用就可以了塞!
好了linux 下库的生成请看https://www.cnblogs.com/bwbfight/p/9262968.html,比较详细
传说中windows的库怎么生成的呢?
打开vs ,可以看到
生成的项目选择DLL,便可!
编译后生成的文件,有三个个文件比较重要
msgreal.dll(动态库文件)
msgreal.lib(动态库描述文件)
msgreal.h(头文件)
当然前提还需要首先
1.选择需要生成库的函数文件:
在需要导出的函数前面需要加_declspec(dllexport),即,动态库dll需要在所输出的“对象”前添加_declspec(dllexport)声明。
头文件和实现函数可能都需要加!
对于库的使用,除了需要包含对应的头文件,静态库需要在文件中添加#prama comment(lib,"cof.lib")
或者在有以下几种情况:
1) 相同解决方案下,可在属性面板“框架与引用”添加静态库工程,并”c++”中添加include file即可
2) 在“link”的附加依赖项添加库的目录,在“输入”中使用添加cof.lib(与pragma同)
即在项目上右键--》属性-》链接器-》输入
即可!
拷贝msgreal.dll到代码目录,代码编译执行时有效
生成exe如果执行又弹出,请安装msgreal.dll ,如何解决->拷贝一个msgreal.dll到exe目录即可!
如果C:\Windows\SysWOW64和exe目录都有一个my1.dll
windows操作系统可能会先执行C:\Windows\SysWOW64\my1.dll,而不执行exe目录下的my1.dll,而如果C:\Windows\SysWOW64\my1.dll又是旧的版本,就可能出现问题,切记切记!