在易语言中调用DLL使用说明.pdf

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

易语言中调用DLL使用说明

学习各种高级外挂制作技术,马上去百度有哪些信誉好的足球投注网站(魔鬼作坊),点击第一个站进入,快速成为做挂达

人。

DLLWindowsAPIDLL

DLLWindowsAPIDLL

“在易语言中调用DDLLLL”包含两方面的内容:调用WWiinnddoowwss系统AAPPII函数;调用普通DDLLLL函数。

下文用到的“调用API”或“调用DLL”等字眼,除非特别注明,一般都是指以上两方面之一或之和,视

上下文而定。绝大多数情况下,无需明确区分调用的是系统API还是普通DLL。

stdcallDLL

stdcallDLL

目前易语言只支持以ssttddccaallll方式调用DDLLLL中的导出函数。

Windows系统API一般都是以stdcall调用方式导出的,故在易语言中调用它们时通常不必考虑函数调用方

式的问题。而普通DLL有可能导出“非stdcall调用方式”(比如cdecl)的函数,调用时需要特别注意。一般而

言,考虑到通用性,DLL开发者都会选择导出以sdtcall方式调用的函数。(支持生成DLL的编程语言通常都支

持导出stdcall调用方式的函数,具体实现请参考各编程语言手册。)

特别地,在VC中类似如下代码导出的函数并非stdcall调用方式:

externC

__declspec(dllexport)test(inta,intb)

{

return(a+b);

}

要想该函数被易语言调用,应该按类似如下方式定义(并在.def文本中声明导出):

intWINAPItest(inta,intb)

{

return(a+b);

}

易语言编译生成的DLL,其导出函数全部为stdcall调用方式,所以在易语言中调用易语言生成的DLL不存

在问题。

DLL1

DLL1

目前在易语言中调用DDLLLL时只支持11字节对齐的结构(自定义数据类型)

如果DLL命令的某个参数或参数的某个成员是结构类型(自定义数据类型),则其对齐方式必须是1字节

对齐。Windows系统API中所用到的结构都是1字节对齐的,故在调用API时不受此限制。但如果想用其它编

程语言生成DLL供易语言调用且数据类型中包含了1或2字节数据长度的成员(如字符型或短整数),就需要

考虑结构的1字节对齐。

在VC中,可以这样定义1字节对齐的结构(结构在C/C++中称为struct):

#pragmapack(push,old_value)

#pragmapack(push,old_value)

##pprraaggmmaappaacckk((ppuusshh,,oolldd__vvaalluuee))//保存VC++编译器结构对齐字节数。

#pragmapack(1)

#pragmapack(1)

##pprraaggmmaappaacckk((11))//设置为以一字节对齐。

structxxx

{

bytea;

intb;

doublec;

};

#pragmapack(pop,old_value)

#pragmapack(pop,old_value)

##pprraaggmmaappaacckk((ppoopp,,oolldd__vvaalluuee))//恢复VC++编译器结构对齐字节数。

在Delphi中,可以这样定义1字节对齐的结构(结构在Delphi中称为record):

type

packed

packed

xxx=

文档评论(0)

暗伤 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档