一个C++项目, 已有一些静态库(.lib)和所有的函数声明(.h),怎么生成一个动态库(dll)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一个C++项目, 已有一些静态库(.lib)和所有的函数声明(.h),怎么生成一个动态库(dll)相关的知识,希望对你有一定的参考价值。
link /lib /list xxx.lib可以列出这个lib文件里的所有obj文件
link /lib /extract:xxx.obj xxx.lib
可以从lib里拆解出一个obj文件
配合/nologo参数和for命令
把里面的obj文件全部拆出来
for /f "delims=" %a in ('link /lib /list /nologo xxx.lib') do link /lib /extract:"%a" xxx.lib
然后根据.h文件自己写个def文件,用link重新链接一下就行了。
def文件还是要自己写的……
或者你看看能不能用dumpbin把lib导出的函数名字都列出来,然后处理一下做成def文件 参考技术A 建一个dll工程,然后把.lib静态库加进去,将.lib静态库中所有的导出函数用另一个新函数封装一下,并把这些新函数导出.这样就形成一个新的有.lib静态库相同功能的dll了.追问
太麻烦了, 函数太多了。。。, 而且这样生成的函数调用时要寻址两次
追答使用函数指针的全局变量,将这些变量赋值成lib静态库中的值,然后导出这些变量.
关于函数太多,那我也没其它方法.很显然,你必须得知道你要导出的函数列表才行.
据我所知没办法
当你在用SDK时基本都会提供动态库与静态库
你必须要知道静态库源码才能去重新编译成动态库 参考技术C 动态链接库是要自己写代码的,你这个是别人的。lib文件啊~追问
我的意思就是把lib变成dll, 函数都是Lib里面的函数
以上是关于一个C++项目, 已有一些静态库(.lib)和所有的函数声明(.h),怎么生成一个动态库(dll)的主要内容,如果未能解决你的问题,请参考以下文章