递归火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 火山 源码 类库
查看: 309|回复: 6
打印 上一主题 下一主题

[视窗] dll调用

[复制链接]

1

主题

6

帖子

23

积分

新手上路

Rank: 1

积分
23
跳转到指定楼层
楼主
发表于 2026-3-19 16:19:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/*************************************************************
Description:    //与控制器建立链接
Input:          //IP地址,字符串的方式输入
Output:         //卡链接handle
Return:         //错误码
*************************************************************/
int32  __stdcall ZAux_OpenEth(char *ipaddr, ZMC_HANDLE * phandle);

怎么在视窗中引用这个dll,这两个参数类型怎么设置



回复

使用道具 举报

31

主题

2817

帖子

1万

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
10026
沙发
发表于 2026-3-19 17:11:44 | 只看该作者
两个都用变整数。
第一个参数:先用【文本到多字节】或【文本到UTF8】将文本型转码,再【取字节集指针】来传参;
第二个参数:定义一个【变整数】类型的变量,然后【取变量地址】来传参;
回复

使用道具 举报

1

主题

6

帖子

23

积分

新手上路

Rank: 1

积分
23
板凳
 楼主| 发表于 2026-3-19 20:02:10 | 只看该作者
本帖最后由 dream7726 于 2026-3-19 20:04 编辑
Xelloss0618 发表于 2026-3-19 17:11
两个都用变整数。
第一个参数:先用【文本到多字节】或【文本到UTF8】将文本型转码,再【取字节集指针】来 ...


按照这样调用会报错     怎么回复上传图片???

<火山程序 类型 = "通常" 版本 = 1 />

方法 ZAux_OpenEth <公开 静态 类型 = 整数 @输出名 = "ZAux_OpenEth" @视窗.输入 = "zauxdll.dll" @视窗.附属文件 = "zauxdll.dll">
参数 IP地址 <类型 = 变整数>
参数 句柄指针 <类型 = 变整数 注释 = "输出参数" "">
{

}

方法 按钮_被单击 <接收事件 类型 = 整数 注释 = "当按钮被单击后发送此事件">
参数 来源对象 <类型 = 按钮 注释 = "提供事件产生的具体来源对象">
参数 标记值 <类型 = 整数 注释 = "用户调用\"挂接事件\"命令时所提供的\"标记值\"参数值,非此方式挂接事件则本参数值固定为0.">
{
    变量 句柄 <类型 = 变整数>
    变量 IP地址 <类型 = 文本型>
    如果 (来源对象 == 按钮1)
    {

        IP地址 = "127.0.0.1"
        ZAux_OpenEth (取字节集指针 (文本到UTF8 (IP地址)), 句柄)
        调试输出 (句柄)
    }
    返回 (0)
}

错误: 接收到未经处理的严重异常,代码为: 0xE06D7363
被调试程序已经退出,退出码为0xE06D7363.
调试已经停止

回复

使用道具 举报

31

主题

2817

帖子

1万

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
10026
地板
发表于 2026-3-19 20:40:42 | 只看该作者
dream7726 发表于 2026-3-19 20:02
按照这样调用会报错     怎么回复上传图片???

不是说了么,第二个参数要变量地址。
ZAux_OpenEth (取字节集指针 (文本到UTF8 (IP地址)), 取变量地址 (句柄))
回复

使用道具 举报

1

主题

6

帖子

23

积分

新手上路

Rank: 1

积分
23
5#
 楼主| 发表于 2026-3-20 00:07:45 来自手机 | 只看该作者
Xelloss0618 发表于 2026-3-19 20:40
不是说了么,第二个参数要变量地址。
ZAux_OpenEth (取字节集指针 (文本到UTF8 (IP地址)), 取变量地址 ( ...

按照这样改还是报错,我就是疑惑怎么通过参数来返回值,像易语言就勾选下参考属性,视窗资料是太少了,查了很多都没找到怎么传?

可以帮写个样例吗?比如一个add方法,有两个参数1(整数)和参数2(这个我不知道写什么类型),然后方法里面写,参数2=参数2+参数1,也就是结果通过参数2返回出去

感谢指导!

有很多PLC程序员英语不好,易语言或火山视窗真的是个好工具,但是生态太少,用易语言2年一般上位机能做,但是现在遇到很多第三方dll是64位,所以开始转学火山视窗
回复

使用道具 举报

31

主题

2817

帖子

1万

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
10026
6#
发表于 2026-3-20 00:50:30 | 只看该作者
dream7726 发表于 2026-3-20 00:07
按照这样改还是报错,我就是疑惑怎么通过参数来返回值,像易语言就勾选下参考属性,视窗资料是太少了,查 ...

写法应该没问题了啊,是不是DLL的位数不对?
火山的参数,对象是默认参考的,整数等基本类型不参考,所以需要传变量地址,或者用整数类(DLL不能用这个)。

                    

                        

                           

                           
正在渲染火山代码...

                        

                    

                    复制代码
               

评分

参与人数 1金钱 +8 收起 理由
dream7726 + 8 感谢启蒙

查看全部评分

回复

使用道具 举报

1

主题

6

帖子

23

积分

新手上路

Rank: 1

积分
23
7#
 楼主| 发表于 2026-3-20 13:08:56 | 只看该作者
Xelloss0618 发表于 2026-3-20 00:50
写法应该没问题了啊,是不是DLL的位数不对?
火山的参数,对象是默认参考的,整数等基本类型不参考,所以 ...

太感谢你! 致敬! 你这样写了3个方法都尝试了体验了用法, 终于搞明白这个指针传参了

                    

                        

                           

                           
正在渲染火山代码...

                        

                    

                    复制代码
               
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|递归火山软件开发平台 ( 鄂ICP备18029190号 )

GMT+8, 2026-3-30 05:50 , Processed in 0.126175 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表