一个C++项目, 已有一些静态库(.lib)和所有的函数声明(.h),怎么生成一个动态库(dll)

 我来答
空雪梦见
2014-01-03 · TA获得超过5597个赞
知道大有可为答主
回答量:2522
采纳率:75%
帮助的人:1181万
展开全部
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文件
百度网友2016659
2014-01-03
知道答主
回答量:1
采纳率:0%
帮助的人:1414
展开全部
建一个dll工程,然后把.lib静态库加进去,将.lib静态库中所有的导出函数用另一个新函数封装一下,并把这些新函数导出.这样就形成一个新的有.lib静态库相同功能的dll了.
追问
太麻烦了, 函数太多了。。。, 而且这样生成的函数调用时要寻址两次
追答
使用函数指针的全局变量,将这些变量赋值成lib静态库中的值,然后导出这些变量.

关于函数太多,那我也没其它方法.很显然,你必须得知道你要导出的函数列表才行.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
bob76012
2014-01-03 · 超过39用户采纳过TA的回答
知道答主
回答量:87
采纳率:0%
帮助的人:97万
展开全部
你是指你得到的静态库做成动态库嘛
据我所知没办法
当你在用SDK时基本都会提供动态库与静态库
你必须要知道静态库源码才能去重新编译成动态库
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-01-03
展开全部
动态链接库是要自己写代码的,你这个是别人的。lib文件啊~
追问
我的意思就是把lib变成dll, 函数都是Lib里面的函数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式