Re: vc++的.def對dll函數的影響??

看板Programming作者 (三億兩千萬大散戶)時間18年前 (2006/06/06 07:14), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/3 (看更多)
※ 引述《yoco.bbs@bbs.wretch.cc (眠月..)》之銘言: : 在函數宣告前面加上 extern "C" : 不然他會被加上 decorated name : 因為預設是 C++ 編譯,所以函數名稱會改變 (為了支援多載) : 就是說他在 DLL 裡面的實際函數名稱是修飾過的 : 比方說 max ( int, int ) 可能名稱是 "max@int@int" : 你用 GetProcAddress() 就必須輸入 max@int@int 這種怪名字才能抓到 : 所以你要用用 extern "C" 來限制他的函數名稱 : 當然這樣做的話 這個函數名稱就沒辦法被多載 可是我試過加上extern "C"結果沒有用 用Depend看dll還是加上decorated的名子 最後還是加上個.DEF檔就解決了 而且連extern "C"都不用寫 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 203.204.133.140
文章代碼(AID): #14XBhJJ_ (Programming)
文章代碼(AID): #14XBhJJ_ (Programming)