當我們有一個exe
或dll
並連接到它static library
,我們能夠使用extern
關鍵字來訪問靜態庫的從exe
或dll
variables
和/或functions
。爲了簡單起見,我們假設有一個exe
和一個lib
附加到它。嘗試使用的extern以相反的順序
我想要做的是從lib
調用exe
的函數。
可執行代碼
void doSomething() {
// do something here
}
靜態鏈接庫代碼
void onSomeEvent() {
doSomething(); // call doSomething() here
}
反之則是容易的,但我不知道這是否可以像extern
關鍵字的方式來完成。或者什麼是最好的方法?
什麼在我腦海中是通過一個function pointer
(如void*
)到functions
/methods
之一,在lib
(可能是一類的構造函數)。我認爲這應該可行,但我不想過多地觸及庫的代碼,因爲庫不是我的,可以用新版本替換。我可以添加/刪除幾行代碼,但是我想阻止更改函數接口。
什麼是更好方式?
這是高度平臺特定的。你使用什麼編譯器/工具鏈? – sehe