Re: vc++的.def對dll函數的影響??
※ 引述《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
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 3 篇):
Programming 近期熱門文章
PTT數位生活區 即時熱門文章