作者hstrxgfcg216 (sony)
看板C_and_CPP
标题[问题] 关於Labview与C的wrapper.dll问题
时间Fri Aug 19 13:27:22 2016
大家好,
我是labview新手,还没有处理过C的dll档案与labview的互相沟通问题,最近工作需要,
我要对labview与C语言的dll档案之间的沟通问题做些报告。
但是我在网路上只找到关於dll的复杂结构资料型态与labview之间不能沟通的问题,所以
有些人会建议用wrapper的方法将原本C的dll档案中的复杂结构做拆解,然後做成新的dll
档案,让labview使用正确的简易资料结构。
但是我还是没有找到确切的wrapper方法实作,只是有个以上的概念而已,不知道版上的
高手是否可以告诉我那边可以找到这方面完整的资讯?
哪种书可以教我dll包dll的问题?
之前在书店找了一遍,发现市面上的labview书和C语言的书都是满基本的操作,很少有它
们之间的dll问题描述,不晓得在labview与C的dll沟通的时候,除了以上资料结构不同的
问题之外,还有那些问题会发生在labview与C的dll沟通的情况之下。
感谢高手的指点了。
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 211.23.93.163
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1471584445.A.F40.html
1F:→ CoNsTaR: 我 google labview c dll 就一堆了…08/19 15:13
2F:→ CoNsTaR: 如果有问题而且确定是 c/c++ dll 我猜 calling conventio08/19 15:15
3F:→ CoNsTaR: n 08/19 15:15
不知道是否可能找的到那本书,有讲这方面的资讯的,感谢了。
※ 编辑: hstrxgfcg216 (211.23.93.163), 08/19/2016 16:29:50
4F:→ TobyH4cker: 网书 08/20 08:24
5F:→ TobyH4cker: 没有DLL包DLL这回事吧,只有DLL call DLL08/20 08:30
6F:→ TobyH4cker: 有点看不懂你的需求,不过我猜你是想要把介面跟逻辑08/20 08:31
7F:→ TobyH4cker: 分开来这样? 08/20 08:31
8F:→ TobyH4cker: 那你就只需要确保介面符合规范,剩下两个DLL之间的逻08/20 08:33
9F:→ TobyH4cker: 辑就只是普通的程式设计08/20 08:33
10F:→ bdvstg: 个人看法... 第一个你要会写C/C++程式08/20 11:49
11F:→ bdvstg: 第二个 你要会在你的C/C++程式中呼叫dll08/20 11:50
12F:→ bdvstg: 最後 你要会把你的C/C++程式包成dll 08/20 11:51
13F:→ bdvstg: (觉得自己好像在说废话.......) 08/20 11:54
目前我是会把程式包成dll档,只是还没有用dll去call过其他dll,因为我们主管都还没
有买labview只叫我先查查看别人在labview下呼叫c的dll档案时,会发生那些问题,所以
我目前是找到wrapper.dll的做法,但是我还在摸索中XD
※ 编辑: hstrxgfcg216 (36.229.5.242), 08/20/2016 12:59:55
14F:→ CoNsTaR: 问题是 不会有你说的问题发生阿…08/20 14:07
15F:→ CoNsTaR: 从来没听过什麽 dll 资料结构什麽 dll 包 dll wrapper08/20 14:08
16F:→ CoNsTaR: 的 08/20 14:08
17F:→ CoNsTaR: 你主管只是不想花钱买软体之後遇到一堆问题 然後他也只 08/20 14:13
18F:→ CoNsTaR: 知道你要把 c 和 labview 接起来所以才这样跟你说吧 实 08/20 14:13
19F:→ CoNsTaR: 际上你主管重点不是在 labview + dll 会有什麽问题 而是 08/20 14:13
20F:→ CoNsTaR: 买了 labview 能不能达到想要的效果08/20 14:13
21F:推 CoNsTaR: 我觉得你现在最好的做法是去弄个试用版 labview 来给他08/20 14:26
22F:→ CoNsTaR: 玩一玩 确认会不会遇到问题 顺便让你更了解这些东西 才 08/20 14:26
23F:→ CoNsTaR: 有能力能预期哪边可能会出问题 08/20 14:26
http://digital.ni.com/public.nsf/allkb/06ECDC689DDA0F3D862574440074CD95
也许这个联结会让人比较清楚我的问题XD
※ 编辑: hstrxgfcg216 (223.140.124.59), 08/20/2016 14:51:53
25F:→ CoNsTaR: 满清楚 08/20 15:22
26F:→ CoNsTaR: 你的函式回传/接收的参数必须是 Labview 能够处理的 08/20 15:25
27F:→ CoNsTaR: 如果你的函式接收/回传 Labview 不能处理的资料你就得重 08/20 15:27
28F:→ CoNsTaR: 写程式/wrapper 包起来 这样而已 08/20 15:27
只是我没有写wrapper程式的经验,查了一下,好像是新的dll呼叫原dll,不知道是否用
一个dll去引用别的dll,只要单纯在前面include原dll就可以了XD
※ 编辑: hstrxgfcg216 (42.73.35.18), 08/20/2016 16:30:37
29F:→ CoNsTaR: 那要看你有没有旧 dll 的原始码 有原始码就没有“旧dll08/20 16:38
30F:→ CoNsTaR: ”这个问题啦 08/20 16:38
31F:→ CoNsTaR: 没有原始码就只是变成新 dll 动态连结旧 dll 这样 08/20 16:40
感谢啦,我大概有点头絮了XD
※ 编辑: hstrxgfcg216 (223.136.1.106), 08/20/2016 18:10:35