[問題] BCB 6如何產生DLL檔給labview使用?

作者: NeatGar (dennis)   2015-07-25 17:43:15
開發平台(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檔不同。
作者: uranusjr (←這人是超級笨蛋)   2015-07-25 19:01:00
Borland C++ 產生的 DLL 需要一個額外的 runtime 才能跑參見 http://d.pr/1fNY4
作者: Bencrie   2015-07-25 20:07:00
只需要 dll 的話應該是說 labview 用 LoadLibrary 動態載入 dll。如果你的 dll 是用 C++ 寫的,可能要注意一下name mangling 的問題。
作者: MasterChang (我愛ASM)   2015-07-25 20:24:00
用codeblock(gcc)去做dll...不要沒事搞自己
作者: CumCumCum (2 hard 2 hard)   2015-07-27 09:30:00
加入lib是靜態聯結
作者: NeatGar (dennis)   2015-07-27 11:26:00
再請教一下,name mangling的問題是指有兩個以上的函數名稱(但擁有不同輸入參數)時,所產生的link問題?若是,我的程式碼裡面沒有定義相同名稱,應該不會有此問題。若不是?name mangling的問題是指那方面呢?感謝回答。^_^
作者: firose (guest也是也是也是也是也)   2015-07-27 12:02:00
看所謂的無法讀取到是指什麼?搞不好連函數都沒輸出也可能
作者: uranusjr (←這人是超級笨蛋)   2015-07-27 12:52:00
你去看維基百科的說明就知道了, 只要用 C++ 就需要注意
作者: Killercat (殺人貓™)   2015-07-27 13:51:00
C++/C會碰到不同的Name Mangling問題 C++的問題是在於symbol pattern每個編譯器都不同,C的話主要是C++用extern "C"以後需要解決的一些眉眉角角純C的話基本上由於語言特性 是沒有太大這類問題的

Links booklink

Contact Us: admin [ a t ] ucptt.com