前言:
DLL 是個(gè)很久遠(yuǎn)的文件格式,以至于它只支持導(dǎo)出函數(shù)(請忽略 .net 的 DLL)。至于導(dǎo)出 class,也是由于編譯系統(tǒng)的支持才勉勉強(qiáng)強(qiáng)能進(jìn)行,只能靜態(tài)加載,實(shí)際上對于DLL文件來說它導(dǎo)出的還是函數(shù)。——以上,個(gè)人的一點(diǎn)淺顯理解。
問題:
有沒有存在一種好的方式,讓DLL能夠被動(dòng)態(tài)加載,并且能夠方便地得到里面的 C++ class 信息?
備選:
1、別想了,老老實(shí)實(shí)地用吧,還是導(dǎo)出純C函數(shù)= =
2、大膽的導(dǎo)出 class 吧,如果動(dòng)態(tài)加載,自己去拼那些編譯后名字吧。。
3、COM 形式?可是,要注冊到系統(tǒng)中去,憑空多了系統(tǒng)注冊表依賴
4、還有嗎?
5、甚至可以拋開DLL,有沒有類似的一種方式,可用于二進(jìn)制代碼的模塊劃分以及閉源的代碼重用?
(至于跨平臺(tái)啥的先不考慮吧,暫定Windows平臺(tái)下吧)
請不吝指教~
posted on 2010-12-18 22:35
溪流 閱讀(2256)
評(píng)論(15) 編輯 收藏 引用 所屬分類:
C++ 、
Windows