xiaolei3232 发表于 2010-5-17 11:03:08

求助DLL文件调用问题

本帖最后由 xiaolei3232 于 2010-5-17 11:05 编辑

    各位好!
    我正在做一个项目,用到了欧姆龙的Controller link板卡。需要在labview中调用dll文件实现通信。其中以一个函数描述如下:
    Function:Write data to a data link area.
    Call Format:INT clkWriteDatalink(PCLKHANDLE hclk,PEMCLKADDRESS pEmAddress,LPWORD lpWriteData,DWORD dwsize);
    Arguments:
                Type            Variable name            Description

            PCLKHANDLE            hclk                  The CLK handle obtained with ClkOpen()
            PEMCLKADDRESS      PemAddress            Pointer to the starting address structure for writing data
            LPWORD               lpWriteData         pointer to the buffer to store the write data
            DWORD                dwSize                Write data size(unit:words)

其中,PEMCLKADDRESS结构体的说明如下:

            Type            Variable name            Contents

            LPCTSTR      lpszMemName          Area type(specify the text string for the event memory area type set for the data link area)
            DWORD          dwWordOffset         Number of offset words

我的参数配置如附件所示,但是运行时总是不正确,请帮忙查看。感激不尽!!

飞雨天 发表于 2010-5-17 11:28:39

配置部分截图我看下,我只有7.1

xiaolei3232 发表于 2010-5-17 11:53:22

回复 2# 飞雨天

截图为几个参数的配置,5.jpg程序框图。簇中包含了一个字符串一个U32数值。簇的处理参考了call dll.vi。如果直接将簇输入的CLN也不能正常运行。

xiaolei3232 发表于 2010-5-17 11:55:29

回复 2# 飞雨天


    问了很多人,能有人回复真的很感谢!

飞雨天 发表于 2010-5-17 13:10:28

暂时看上去没有什么问题,不过dll调用本来就很是困难,我准备下个labview 2009,不过要在下班的时候下,明天过来安装,如果可以,明天给你答复~当然,如果自己或者其他朋友能解决的,最好不过,把解决的方法贴下~~~另外,不用感谢,有问题出来,大家协同解决,共同提高,是很好的事情。

飞雨天 发表于 2010-5-17 13:11:57

你看下calling convention的设置,labview默认是c方式,然后大部分的dll是stdll的

xiaolei3232 发表于 2010-5-17 13:57:40

回复 6# 飞雨天


    两种方式都试过,但是一样是不行。有错误1097,有时直接退出labview.

xiaolei3232 发表于 2010-5-18 08:49:50

回复 5# 飞雨天


    版主,我还是没有解决,期待您的帮助。谢谢!

飞雨天 发表于 2010-5-18 12:38:48

本帖最后由 飞雨天 于 2010-5-18 12:45 编辑

我在看,如果在线,把几个dll给附下~~我先自己去找找
还有把编程手册附下

xiaolei3232 发表于 2010-5-18 15:42:29

回复 9# 飞雨天


您好!
附件给您,真的非常感谢您!

xiaolei3232 发表于 2010-5-19 09:17:17

回复 9# 飞雨天


   版主,您好!我查了一些资料,有的说要再做一个Dll文件,自己做的Dll文件的输入为一般类型,输出为结构体指针。不知是否可行?不过用VC++做DLL我也不会。真不知所措了。{:4_377:}

飞雨天 发表于 2010-5-19 09:33:11

本帖最后由 飞雨天 于 2010-5-19 10:20 编辑

嗯,做个wrap dll是可以的,主要用在解决存在labview是在很难识别的数据类型的场合,你这个应该不是问题,我抽空看看,不能保证什么,所以,你也要努力,看看labview的dll调用的help和那个pdf,还有数据存储的application note,都很有帮助。至于生成dll,用vc来做,还是比较简单的,你可以找找资料,一个小时就会了。

很不好意思,我不知道这个dll还有依赖的其他dll,你在你的硬盘上搜索下这三个dll,如果找到,附上来,baidu里没找到。

xiaolei3232 发表于 2010-5-19 11:29:22

回复 12# 飞雨天


      您所说的dll文件如附件FgwGen.rar,压缩包中是system32下一部分以FG开头的Dll文件,也许有用。

   走了很多论坛就碰到你这样一个好人,谢谢!

飞雨天 发表于 2010-5-19 11:56:14

本帖最后由 飞雨天 于 2010-5-19 11:59 编辑

回复 13# xiaolei3232

我只是最近刚好要研究下dll,想做个东西,让labview调用第三方dll更加简单一些

至于说好人,论坛上好多,你可别一棍子打死,不然刚好有朋友有什么建议,都不好意思说了

另外,我放弃labview很久了,好多东西都要重新拾起来,我会保证尽力去尝试,但不能保证能搞定。毕竟一直都是一个逃避责任的人。

最后要说的,要是你直接丢一堆dll和要求上来,我就闪人了,看你的程序,还是对labview调用dll有所了解,至少去努力过,所以,我也不想让你对labview失望。

付出肯定有收获,努力吧。。。。一起努力

PS:学习或者工作过程中,肯定会遇到问题,难题,这时候要高兴,因为如果你解决了它,就意味着你进步了。我现在工作上遇到一个很让人抓狂的问题,写前面的话,是给你,给朋友们,同时主要是给自己,共勉。

飞雨天 发表于 2010-5-19 12:30:39

汗~~忘了问你所说的运行不正确是指什么?因为一般dll都是弹出对话框出错或者直接结束labview进程,你的程序可以运行,那么就是结果不正确,你说下你预期的正确结果。
页: [1] 2 3
查看完整版本: 求助DLL文件调用问题