第一句子网 - 唯美句子、句子迷、好句子大全
第一句子网 > c语言调易语言dll 易语言DLL来返回文本供其他语言调用

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

时间:2021-12-31 23:58:25

相关推荐

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

部分简介

在使用易语言与其他语言配合编程中,有时需要使用易语言的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的返回文本.

相关阅读

最近更新

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。