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又是旧的版本,就可能出现问题,切记切记!

 

posted @ 2018-09-13 13:51  白伟碧一些小心得  阅读(523)  评论(0编辑  收藏  举报