c 调用易语言dll字节集,易语言教程指针到字节集及dll调用

本节课示范了易语言两个高级命令指针到文本()和指针到字节集(),以及易语言dll的制作及调用。

指针到字节集

调用格式: 〈字节集〉 指针到字节集 (整数型 内存数据指针,整数型 内存数据长度) - 系统核心支持库->字节集操作

英文名称:pbin

返回指定内存指针所指向地址处的一段数据,注意调用本命令前一定要确保所提供的内存地址段真实有效。本命令的最佳使用场合就是在易语言回调子程序和易语言DLL公开子程序用作获取外部数据。本命令为高级命令。

参数<1>的名称为“内存数据指针”,类型为“整数型(int)”。本参数提供指向一个内存地址的指针值。

参数<2>的名称为“内存数据长度”,类型为“整数型(int)”。本参数提供该内存地址处所需获取的数据长度。

操作系统需求: Windows、Linux

指针到文本

调用格式: 〈文本型〉 指针到文本 (整数型 内存文本指针) - 系统核心支持库->文本操作

英文名称:pstr

返回指定内存指针所指向地址处的文本,注意调用本命令前一定要确保所提供的内存指针真实有效,且指向一个以零字符结束的文本串。本命令的最佳使用场合就是在易语言回调子程序和易语言DLL公开子程序用作获取外部数据。本命令为高级命令。

参数<1>的名称为“内存文本指针”,类型为“整数型(int)”。本参数提供指向一个以零字符结束的文本串内存指针值。

操作系统需求: Windows、Linux

信息框dll源码

.版本 2

.程序集 程序集1

.子程序 _启动子程序, 整数型, , 请在本子程序中放置动态链接库初始化代码

_临时子程序 () ' 在初始化代码执行完毕后调用测试代码

返回 (0) ' 返回值被忽略。

.子程序 _临时子程序

' 本名称子程序用作测试程序用,仅在开发及调试环境中有效,编译发布程序前将被系统自动清空,请将所有用作测试的临时代码放在本子程序中。 ***注意不要修改本子程序的名称、参数及返回值类型。

.子程序 信息框, , 公开

.参数 标题, 整数型

.参数 内容, 整数型

.参数 图标, 整数型

.参数 大小, 整数型

载入 (信息窗口, , 假)

信息窗口.标题 = 指针到文本 (标题)

信息窗口.标签.标题 = 指针到文本 (内容)

信息窗口.图片框.图片 = 指针到字节集 (图标, 大小)

测试源码

.版本 2

.DLL命令 自定义信息框, , "1.dll", "信息框"

.参数 窗口标题, 文本型

.参数 标签内容, 文本型

.参数 图片文件, 字节集

.参数 图片大小, 整数型

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在C语言中调用易语言编写的DLL文件,需要注意以下几点: 1. 确认DLL文件中导出函数的名称和参数类型,这是调用DLL文件的基本前提。 2. 使用LoadLibrary函数加载DLL文件,并且使用GetProcAddress函数获取DLL中导出函数的指针。 3. 调用DLL中导出的函数,传递正确的参数类型和参数值。 下面是一个简单的例子,假设我们有一个易语言编写的DLL文件,其中导出了一个函数,可以将两个整数相加并返回结果。 首先,我们需要在C语言中定义这个函数的原型: ```c typedef int (*AddFunc)(int, int); ``` 然后,我们可以使用LoadLibrary函数加载DLL文件,并使用GetProcAddress函数获取导出函数的指针: ```c HINSTANCE hDll = LoadLibrary(TEXT("mydll.dll")); AddFunc add = (AddFunc)GetProcAddress(hDll, "Add"); ``` 最后,我们可以调用这个函数,并传入正确的参数: ```c int result = add(1, 2); ``` 注意,这里的参数类型和参数值必须与DLL文件中导出函数的定义相匹配。 完整的代码如下: ```c #include <windows.h> #include <stdio.h> typedef int (*AddFunc)(int, int); int main() { HINSTANCE hDll = LoadLibrary(TEXT("mydll.dll")); if (hDll == NULL) { printf("Failed to load DLL\n"); return 1; } AddFunc add = (AddFunc)GetProcAddress(hDll, "Add"); if (add == NULL) { printf("Failed to get function pointer\n"); return 1; } int result = add(1, 2); printf("Result: %d\n", result); FreeLibrary(hDll); return 0; } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值