首页 / 技术类 / 讨论 / 想讨论个话题,关于DLL的使用方式

想讨论个话题,关于DLL的使用方式

2010-12-18 22:35:00

前言:

DLL 是个很久远的文件格式,以至于它只支持导出函数(请忽略 .net 的 DLL)。至于导出 class,也是由于编译系统的支持才勉勉强强能进行,只能静态加载,实际上对于DLL文件来说它导出的还是函数。——以上,个人的一点浅显理解。

问题:

有没有存在一种好的方式,让DLL能够被动态加载,并且能够方便地得到里面的 C++ class 信息?

备选:

  1. 别想了,老老实实地用吧,还是导出纯C函数= =
  2. 大胆的导出 class 吧,如果动态加载,自己去拼那些编译后名字吧。。
  3. COM 形式?可是,要注册到系统中去,凭空多了系统注册表依赖
  4. 还有吗?
  5. 甚至可以抛开DLL,有没有类似的一种方式,可用于二进制代码的模块划分以及闭源的代码重用?

(至于跨平台啥的先不考虑吧,暂定Windows平台下吧)

请不吝指教~


首发:http://www.cppblog.com/Streamlet/archive/2010/12/18/136862.html



NoteIsSite/0.4