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

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

问题:
有没有存在一种好的方式,让DLL能够被动态加载,并且能够方便地得到里面的 C++ class 信息?
备选:
1、别想了,老老实实地用吧,还是导出纯C函数= =
2、大胆的导出 class 吧,如果动态加载,自己去拼那些编译后名字吧。。
3、COM 形式?可是,要注册到系统中去,凭空多了系统注册表依赖
4、还有吗?
5、甚至可以抛开DLL,有没有类似的一种方式,可用于二进制代码的模块划分以及闭源的代码重用?

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

请不吝指教~

posted on 2010-12-18 22:35  溪流  阅读(12)  评论(0编辑  收藏  举报