semon_sd 发表于 2008-4-27 13:03:14

LABVIEW调用DLL遇到的问题

我利用labview调用c语言编译的dll文件时,发现dll文件中的函数有结构体指针的参数类型,而labview中没有对应的参数类型,这该怎么办?我在别的网站上发现用将结构体的参数放在簇中,可以实现labview调用DLL中的结构体指针,可是有的结构体指针是可以的,有的结构体指针不行,这是怎么回事?希望得到大家的关注和支持,谢谢

lgh269 发表于 2008-4-29 00:14:32

你说的不错,有的可以有的不可以,这个是LV内存管理机制不同造成的
一般情况下按正常设定都是可以的,
看那位朋友有空看下例子吧

飞雨天 发表于 2008-4-29 09:21:50

你调用形式写错了,这个要选择API形式,而不是c call,这点需要很小心的

semon_sd 发表于 2008-5-2 14:04:59

谢谢,可是我改了调用形式,程序还是不行,这难道真的是结构体指针的问题?希望哪位大侠帮帮忙。

wdyjz 发表于 2008-5-2 16:47:25

你既然能用c编写dll,那先用VC调用下它,看看能不能正常工作。
然后,才是考虑在LV下的移植工作。

飞雨天 发表于 2008-5-3 15:39:03

你说的不行是什么意思?是出现错误对话框然后labview全部退出呢?还是说运行了没有什么反映呢?

semon_sd 发表于 2008-5-6 15:29:30

我最后没有调用DLL,通过串口monitor,将串口协议提取出来了,并将个别需要的字符通过串口monitor截取下来,然后通过串口对led进行了简单的操作,这种方法舍弃了原来DLL中的很多函数,局限性较大。但能解决现在面临的问题了,我上次说不行的意思是,将调用方式改为了api调用,仍然运行失败,希望大家共同关注这一问题,NI的人说结构体指针是他们的软件不支持的,部分成功的例子只是簇碰巧了适合而已。

semon_sd 发表于 2008-5-6 15:30:52

不行的具体意思是:labview仍然是强行关闭

飞雨天 发表于 2008-5-7 09:45:32

可能涉及结构体对齐的问题。。。不过我这里只要修改下调用方式就行了,传上代码,你运行下,我这里不会退出labview的

sadboy 发表于 2008-5-15 09:31:48

呵呵,各位用的版本都好高啊,不能打开,我用的是8.0的,8.2好像要求计算机能上网:( :( :( :(

semon_sd 发表于 2008-5-27 19:54:28

谢谢,飞雨天,虽然我现在还是不能完全将这个问题解决,项目的原因时间不可能拖得太久,但是还是谢谢你的关注
页: [1]
查看完整版本: LABVIEW调用DLL遇到的问题