c语言调易语言dll,易语言DLL来返回文本供其他语言调用

本文介绍了如何在易语言中创建DLL以返回文本型值,并确保其他语言能正确读取。主要方法包括通过内存操作,先在易语言中分配内存存储文本,然后DLL返回内存指针,其他语言读取该指针内容;或者预先在调用方分配内存,传入DLL进行操作。两种方法都涉及到内存管理和指针操作,确保跨语言数据交换的正确性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

部分简介

在使用易语言与其他语言配合编程中,有时需要使用易语言的DLL来返回文本型的值,但是由于易语言本身文本型数据不能直接返回让其他语言使用(直接使用多次会崩溃).所以这里要使用一种转换的方式,是其他语言调用易语言的文本返回参数.

一.方法.

原理说明:

使用了内存的操作, 在易语言当中,申请一块足够的内存(例程中为1024字节),然后将要返回的文本写到该内存中,然后DLL返回一个内存指针.再在其他语言中读取该指针.

调用伪代码:

DLL命令 Test1

int adress= Test1();//执行DLL命令,使其返回一个内存指针

char* pCh=new char[1024];//这里的数据类型为字节型,占用1个字节,值0-255 同易语言中的字节.

这里是申请一块字节型内存,内存大小为1024,然后用这块内存来存放DLL返回指针所指向的文本.

注意:如果没有申请内存,那么可以直接使用一个”字节型”的数组.

RtlMoveMemory(pCh,adress,1024);//将指针指向的内容,复制到我们的变量中.

BOOL bRet= VirtualFree((LPVOID)Ret,0,MEM_RELEASE);//最后是清理内存操作.

二.第二种方法

原理说明:

在程序中申请一块内存,把内存的地址传递给DLL,易语言直接对这块内存进行操作.

调用伪代码:

DLL命令 Test2

char* pCh=new char[1024];//这回是自己申请一块字节型内存.

ZeroMemory(pCh,1024);//清空内存.

int Addr=(int)(pCh);//获取自己申请内存的地址.

(*Test2)(Addr);//调用DLL命令

调用过后,pCh中既是DLL的返回文本.

相关阅读

最近更新

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值