3 回答

TA貢獻(xiàn)1797條經(jīng)驗(yàn) 獲得超6個(gè)贊
可以使用objcopy --redefine-sym old=new file(參見(jiàn)man objcopy)重命名目標(biāo)文件中的符號(hào)。
然后只需使用新名稱調(diào)用函數(shù)并鏈接到新的目標(biāo)文件。

TA貢獻(xiàn)1900條經(jīng)驗(yàn) 獲得超5個(gè)贊
在Windows下,您可以使用LoadLibrary()將其中一個(gè)庫(kù)加載到內(nèi)存中,然后使用GetProcAddress()獲取需要調(diào)用的每個(gè)函數(shù)的地址,并通過(guò)函數(shù)指針調(diào)用函數(shù)。
例如
HMODULE lib = LoadLibrary("foo.dll");
void *p = GetProcAddress(lib, "bar");
// cast p to the approriate function pointer type (fp) and call it
(*fp)(arg1, arg2...);
FreeLibrary(lib);
將獲取foo.dll中名為bar的函數(shù)的地址并調(diào)用它。
我知道Unix系統(tǒng)支持類似的功能,但我想不出他們的名字。
- 3 回答
- 0 關(guān)注
- 1332 瀏覽
添加回答
舉報(bào)