大家好
我是使用VC
最近遇到一些問題 google不太到想要的答案
也許是關鍵字下的不夠精確
問題是這樣的
我自己在export dll的時候
通常產出的dll 跟對應的lib 關係都是1對1 , 用dumpbin 看dll & lib 所 export的
function 都是一致的
工作上我使用微軟提供的API
讓我產生以下兩個問題
1. (不確定有沒辦法做到)怎麼讓一個lib export的function 是在多個dll裡面而不是單
一dll ?
我exe 設定link A.lib, 實作卻散落在A.dll跟B.dll甚至更多?
2. (確定做得到)怎麼讓一個lib partial export function, 實際上對應的到的dll 可能
export更多
例如我用dumpbin看lib有兩個function, 可是dll卻出現十幾個.
這可能是微軟只想export 某幾個API給user mode使用可是dll卻埋著其他API
真的有心可以用loadlibrary去用, 我自己想到的辦法
難道是DEF檔案先寫要開放的function編譯一次產生partial lib
之後再把全部補上 產生dll給使用者?(應該不可能這樣)
因為我拿到的.h檔案只有兩個function 所以趕到很好奇他怎編譯的
3. 假設我真的發現dll裡面有埋藏一個API想使用看看, 我找不到header
我有沒有辦法得到這個function的完整prototype? 讓我可以用loadlibrary..
symbol table沒有紀錄, 難道就沒辦法得知了嗎?
以上
我以為跟DEF檔案有關連, 但試試看驗證發現我還是無法解釋上面的問題
想請問各位 給我一點hint也好...
感激