亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如果兩個庫提供具有相同名稱的函數產生沖突,我該怎么辦?

如果兩個庫提供具有相同名稱的函數產生沖突,我該怎么辦?

C
函數式編程 2019-08-31 15:00:39
如果我有兩個提供相同名稱功能的庫,我該怎么辦?
查看完整描述

3 回答

?
互換的青春

TA貢獻1797條經驗 獲得超6個贊

可以使用objcopy --redefine-sym old=new file(參見man objcopy)重命名目標文件中的符號。


然后只需使用新名稱調用函數并鏈接到新的目標文件。


查看完整回答
反對 回復 2019-08-31
?
梵蒂岡之花

TA貢獻1900條經驗 獲得超5個贊

在Windows下,您可以使用LoadLibrary()將其中一個庫加載到內存中,然后使用GetProcAddress()獲取需要調用的每個函數的地址,并通過函數指針調用函數。


例如


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的函數的地址并調用它。


我知道Unix系統支持類似的功能,但我想不出他們的名字。


查看完整回答
反對 回復 2019-08-31
  • 3 回答
  • 0 關注
  • 1333 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號