易语言DLL返回文本给其他语言调用

易语言 2020-07-09 09:29:32

易语言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的返回文本.