如何合并多个C++编写的Win32 Dll成一个Dll

freenux 2009-05-05 01:03:22
好像ILMerge只能合并.net的模块DLL(比如C#编写的),但是合并用C++编写的就不行了,有解决办法吗?
另外顺便问一句,静态编译是什么?
...全文
712 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
我是苦力 2009-05-06
  • 打赏
  • 举报
回复
Dll VC应该是没有办法的,除非你把那些功能的code 都copy过来重新组织一个Dll。
如果是lib是可以的。

不过一个一个调也没有问题的,多少工程都是这样做的。 windows 好像是这样的啊。


所以的DLL搞到一个文件夹。
mengde007 2009-05-06
  • 打赏
  • 举报
回复
不建议去合并;不建议在一个dll去调用其他的dll;容易形成循环依赖;
sunlin7 2009-05-06
  • 打赏
  • 举报
回复
如果有源代码,并且各个DLL工程的设置不冲突,可以将其它DLL的入口函数分别重命名,然后在一个“总”dll里面分别调用其它DLL的入口函数。---如果有其中的一个加载失败,就卸载已经成功载的DLL。
如果没有源代码,可以试试RawPeApiLib里面的在内存中加载DLL的功能。
wutaihua 2009-05-06
  • 打赏
  • 举报
回复
动态库的情况下是不可以的。dll会一直存在,除非你在源码级别上进行架构的更改,不然就按照你说的去合并,是做不到的。
freenux 2009-05-05
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 what2say3 的回复:]
你的情况最方便的方法是在一个'总'DLL里调用其它的dll;
[/Quote]
我的目的是消除太多的Dll文件,因为Dll文件太多会影响应用程序加载的效率,而且对客户来说,文件太多也会给他们的使用带来不便。
而您说的方法并不会消除“被调用的Dll文件”啊,应用程序在发布的时候dll文件个数还是一样的。
Cocoky 2009-05-05
  • 打赏
  • 举报
回复
同意LS
what2say3 2009-05-05
  • 打赏
  • 举报
回复
你的情况最方便的方法是在一个'总'DLL里调用其它的dll;
freenux 2009-05-05
  • 打赏
  • 举报
回复
怎么没见响应呢?自己顶一下!!!

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧