看板 C_and_CPP 關於我們 聯絡資訊
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) Borland C++ 6 Builder 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 問題(Question): 之前使用 Borland C++ 6 Builder的DLL Wizard產生動態連結檔DLL 給Borland C++ 6撰寫出來的介面程式使用都沒有問題。 現在要把此DLL給labview撰寫的介面程式使用卻發生問題,labview一 直都無法讀取到此DLL。 想請教,用Borland C++ 6 Builder如何產生labview可以使用的動態連結 檔DLL呢? 補充說明(Supplement): Borland C++ 6 Builder的DLL Wizard在產生動態連結檔DLL時,都會產生 兩個檔案,一個LIB檔,一個是DLL檔。但我聽labview工程師說,labview 只需要DLL檔即可,跟Borland C++ 6 要同時在開法的專案中加入LIB檔和 DLL檔才能執行DLL檔不同。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.170.52.224 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1437817400.A.C50.html
uranusjr: Borland C++ 產生的 DLL 需要一個額外的 runtime 才能跑 07/25 19:01
uranusjr: 參見 http://d.pr/1fNY4 07/25 19:03
Bencrie: 只需要 dll 的話應該是說 labview 用 LoadLibrary 動態 07/25 20:07
Bencrie: 載入 dll。如果你的 dll 是用 C++ 寫的,可能要注意一下 07/25 20:08
Bencrie: name mangling 的問題。 07/25 20:09
MasterChang: 用codeblock(gcc)去做dll...不要沒事搞自己 07/25 20:24
CumCumCum: 加入lib是靜態聯結 07/27 09:30
※ 編輯: NeatGar (124.199.89.212), 07/27/2015 11:18:19
NeatGar: 再請教一下,name mangling的問題是指有兩個以上的函數名 07/27 11:26
NeatGar: 稱(但擁有不同輸入參數)時,所產生的link問題?若是,我的 07/27 11:28
NeatGar: 程式碼裡面沒有定義相同名稱,應該不會有此問題。若不是? 07/27 11:30
NeatGar: name mangling的問題是指那方面呢?感謝回答。^_^ 07/27 11:31
firose: 看所謂的無法讀取到是指什麼?搞不好連函數都沒輸出也可能 07/27 12:02
uranusjr: 你去看維基百科的說明就知道了, 只要用 C++ 就需要注意 07/27 12:52
Killercat: C++/C會碰到不同的Name Mangling問題 C++的問題是在於 07/27 13:51
Killercat: symbol pattern每個編譯器都不同,C的話主要是C++用 07/27 13:52
Killercat: extern "C"以後需要解決的一些眉眉角角 07/27 13:52
Killercat: 純C的話基本上由於語言特性 是沒有太大這類問題的 07/27 13:53