以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]帮我看看这个dll调用失败是哪里错了 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=96860) |
-- 作者:jolay0827 -- 发布时间:2017/3/1 10:45:00 -- [求助]帮我看看这个dll调用失败是哪里错了 1、VB下的函数调用声明
Private Declare Function mbtcpConnect Lib "modbus_tcp.dll" (ByVal nport As
Long, ByVal IpPort As Long, ByVal IpAddress As String, ByVal User As String) As
Long
调用举例: k = mbtcpConnect(0, 502, "85.16.1.1",
"wjun") \'启动0号网络链接,从IP地址85.16.1.1,网络端口502的设备进行通讯 这里是帮助文档里的VB调用说明 Declare Function mbtcpConnect Lib "modbus_tcp.dll" (ByVal nport As Long, ByVal IpPort As Long, ByVal IpAddress As String, ByVal User As String) As Long 这个是写在fox全局代码里面的
mbtcpConnect(0, 502, "85.16.1.1", "wjun") 这个代码是打开端口,我用按键触发这条指令就会出现图片上的错误提示,但是我另外一个自己编写的dll调用可以成功,请教大神指点。
此主题相关图片如下:dll调用失败提示.png |
-- 作者:jolay0827 -- 发布时间:2017/3/1 10:48:00 -- 0.0.0 |
-- 作者:有点色 -- 发布时间:2017/3/1 11:19:00 -- 1、把dll文件拷贝到foxtable的安装目录下
2、全局代码定义
public Declare Function mbtcpConnect Lib "modbus_tcp.dll" (ByVal nport As Long, ByVal IpPort As Long, ByVal IpAddress As String, ByVal User As String) As Long |
-- 作者:jolay0827 -- 发布时间:2017/3/1 11:33:00 -- 还是存在那个错误,还有我是否需要添加这个dll,按照帮助文件里面介绍,我是不要添加的。 |
-- 作者:有点色 -- 发布时间:2017/3/1 12:22:00 -- 对应的dll文件拷贝到foxtable安装文件夹下了吗?
你用什么工具开发调用成功的? |
-- 作者:jolay0827 -- 发布时间:2017/3/1 12:41:00 -- 易语言调用过, 而且我用易语言写了一个dll在fox里调用成功了,不过调用这个modbus的dll文件就不行。
|
-- 作者:有点色 -- 发布时间:2017/3/1 12:47:00 -- 那,你就间接来做囖。通过易语言先调用生成dll,再使用。 |
-- 作者:jolay0827 -- 发布时间:2017/3/1 16:18:00 -- 试了下,不过又出现了新的情况,提示“尝试读取或写入受保护的内存。这通常指示其他内存已损坏。” |
-- 作者:jolay0827 -- 发布时间:2017/3/1 17:47:00 -- 是不是我引用变量的时候路径定义错了,不过我按照网上说的那个关掉DEP也不行呀,而且只有12版本的可以关,16版本的还关不掉………… |
-- 作者:有点色 -- 发布时间:2017/3/1 17:56:00 -- 应该是定义得有问题。string,尽量定义成 stringbuilder
http://www.foxtable.com/webhelp/scr/2097.htm
|