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