[问题] 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