在易语言中调用DLL.docx

上传人:王** 文档编号:1498662 上传时间:2024-07-27 格式:DOCX 页数:9 大小:44.87KB
下载 相关 举报
在易语言中调用DLL.docx_第1页
第1页 / 共9页
在易语言中调用DLL.docx_第2页
第2页 / 共9页
在易语言中调用DLL.docx_第3页
第3页 / 共9页
在易语言中调用DLL.docx_第4页
第4页 / 共9页
在易语言中调用DLL.docx_第5页
第5页 / 共9页
在易语言中调用DLL.docx_第6页
第6页 / 共9页
在易语言中调用DLL.docx_第7页
第7页 / 共9页
在易语言中调用DLL.docx_第8页
第8页 / 共9页
在易语言中调用DLL.docx_第9页
第9页 / 共9页
亲,该文档总共9页,全部预览完了,如果喜欢就下载吧!
资源描述

《在易语言中调用DLL.docx》由会员分享,可在线阅读,更多相关《在易语言中调用DLL.docx(9页珍藏版)》请在优知文库上搜索。

1、易语言中调用D1.1.使用说明基本说明本文所描述的部分功能需易语言4O1.或以上版本支持。“在易语方中调用D1.1.包含两方面的内毒:UIATindov8ftAPISft1.调用普道D1.1.的数.下文用到的“潮用API”或“调用D1.1.”等字眼,除柞特别注明,一般都是指以上两方面之一或之和,视上下文而定。绝大多数情笈下,无常明诊区分调用的是系统AP1.还是普通D1.1.。目*曷谓言只支持以Stdca1.1.方式调用D1.1.中的导出函ft.Windows系统AP1.一般都是以SIdCa1.1.调用方式导出的.故在易语g中避用它们时通常不必考虑函数调用方式的问题。而普通D1.1.有可能导出,

2、非StdCa1.I调用方式”(比如CdeCI)的函数,伺用时需要特别注需。一般而吉,考庄到通用性,DU.开发者都会逸择导出以Sd1.Ci1.I1.方式通用的函数.(支持生成D1.1.的警理语言通常都支持导出Stdca1.1.调用力式的函数,具体实现请参考各编程语言手册.)黔别地,在YC中类似如下代码导出的函数并非StdCau调用方式:extern,Cdcc1.spec(I1.1.export)IeStxirna.intb)(return(a*b):要想该函数枚易语言调用,应该按美似如下方式定义并在.def文本中声明导出):intUINAPItest(inta.intb)(return(a+b)

3、;易语言编译生成的D1.1.其导出函数金部为StdCa1.I调用力式,所以在易语言中伺用劭语言生成的D1.1.不存在问题。目常在易语言中调用D1.1.时只文兼1字节对齐的结构(自定义效类型)如果D1.1.命令的某个参数或参数的某个成员是结构类型(自定义数据类型,则其对齐方式必须是I字节时1$.WindowsAPI中所用到的结构都是I字节拜齐的.故在调用Ap1.时不受此泯制。但如果想用其它编程语吉生成D1.1.供岳语言调用且数据类型中包含了1或2字节数据长度的成员(如字符型或短整数),就帝要考虑姑狗的1字节对齐.在YC中,可以这样定义1字节对齐的结构(结为在C/C+中秣为StrUCt):raga

4、apack(push,o1.1.va1.e)ttpragmpack(1)/5以-字节对齐。bytea:intb;doub1.ec;i)ragBapack(pop.O1.(1.vaIUe)恢灵Vd,煽译赛结冉刻齐字节数.在OeIPhi中,可以这样定义I字节对齐的结构(结用左DeIPhi中称为record):typexxx=packedrecorda:byte:b:integer;c:doub1.e;end;在其它编程语或辘译器中的定义方式请参考各自的编程手,册”目曷语言文持调用任育发杂的D1.1.令只要满足了前面的两个条件通用方式为StdCa1.I,参数结构为1字节对齐易语言支持调用任意艮杂的D

5、1.1.命令:参政除了可以是基本数据类里或普通结构类型外.还可以是基本类型地址或基本类型蛾组,也可以是结构类型地址或结构类型敢显.结为类里的成员中还可以包含任意数量和任意层次的其它结构、结构地址.结构数怨,等等.D1.1.命令调用表要在易语言中调用WindowsAPI或普通D1.1.中的导出函题,必须肯先在易语言中/该函做进行声明,声明的方式就是颇具易语言特色的“填写D1.1.命令调用表.D1.1.令令谢用表正瑜填写完毕之后,就可以象调用普通易语方子程序一样调用D1.1.命令了。在易语言士填写“DU命令调用表”与在YB中声明D1.1.函数是同样的作用,具有等同的效果。只不过易语言把原本文本型的

6、东西表格化了.更加直观,便于螭辑修改。易语言干的表格与其它编程工具中的普通文本一样,可以祓复制和祐砧.下面重点说明“DU.命令调用表”的填写“在易诩言中,选择菜单“插入TD1.1.命令”即可插入一个空白的ttD1.1.命令调用表“。当林迂有其它掇作方式.请叁考易语言相关操作手册。空白的D1.1.令调用表二:巴第写的“D1.1.令调用表”D1.1.命令名返回值类叁公开备注Dn命令名返回值类型公开备注maEnunDisp1.yDevCriBS1.枚举显示设备D1.1.库文件名:Dn库文件名:user32.d1.1.在DI遍中对及命令名:在Diur中对应命令名:EnijnDisp1.ayDevice

7、sA学数名I英里传址数殂备注多数名类S传址戮坦注IpDevice文本型IEkskn整期里IpDiSp1.ayDevicDisnAYJEVICEd*F1.0三珊里要填写的项目说,D1.1.令名定义该D1.1.命令在易语言中的名称。必须填写,但具体什么名称并不也要.只要不与易语言中的其它子程序重名即可.返回值类型定义D1.1.命令的实际返回值类型所对应的易语言类型,如果在易语言中调用该D1.1.函数时不需要用到其返回值,可以不填写一一而不管实际的DU函数有没有返回值。易语言中的数据类型与生成该Dix的整程语言中的数据类里并不完全一致.需连行适当的转换,详见下文数据类型对照表.公开目前不被使用.(D

8、I1.命令)备注对该DU.的注择,可以不熄.D1.1.串文件名指定被调用的D1.1.文件名稔.文件名中的英文字学不区分大小耳,可以省略后覆.dir.如果是Iind3TS系豌D1.1.的话,可以省略不填.可以使用渔时路径或相对路径,使用相对路径时路径相附于当前*,.e文件(调试运行时)或当前.exc文件(编译后运行时)。考虑到通用性.不足设在此处指定路役,可在代码中以“置D1.1.装载目录()”动态指定帔调用D1.1.的珞径.在DnM中对应44名指定帔谢用的D1.1.命令(或函数)名称.必须准确填写.名称中的英文字母不区分大小写.注意:某些带文本参数的API,其函数名称通常以A类型”表示在生成该

9、D1.1.的描程语吉中参数或返回值的数据类型.易语言与YB,C/C.API的数据类契对照表(待更新:VBCC,API整数型1.ongint.1.ong.boo1.1NT.1.ONG.BOTH.DWORD.U1.NT,1.RESU1.T,I1.PRRAM1.PARAM.HIND.HEI1.E.HMODc1.E,文本型Stringchar*.1.PSTR,1.PTSTR.1.PCSTR.1.PCTSTR逻辑型1.-ongint.INT.BOO1.字节集型Void*,1.PVOID小数型Sing1.eF1.oat双精度力效型Doub1.e.CurrencyDoub1.e日期时同型DateDATE字节

10、型Bytebyte.char.boo1.BYTE.CHAR短整数型Integer,Boo1.eanshort.SHORT.WD长整数型int6-1.IN764a1:固定长度的文本(如YB中的“DimsAsString*32-或C/C+中的“chars(32:)在岳语言中应定义为相应长度的字节型数俎,并传拄.注2:各编程语言之间数据美型相互对照的一枚原则是“所占内存字专数相同注3:VB的Integer,Boo1.均占两个字节内存.而易话百的“整数型友辑型”均占因个字节内存.注意区分。4:如果不能确信再它踞程语言中的某个数据类型对应易语吉的骞个类型,可&先誉试“整数型二然后可尝试“字节巢”(注港使

11、用前以“取空白字节臬0零命令分配足够的内存空间)。注5:有些API(如FindWindCW(八)的文本电或需要接收NU1.1.值,有两种处理方案:在易语言中将该参数定义为整数型并传入0;在易语言中将该参数定义为文本型并传入“字符S)”(在这里字符S)”费似于VB中的VbNU1.IS1.ringr自定义数据类型如果D1.1.今令中有叁或为结构类型,就希要事先在易语言中定义与其对应的自定义数据类型,定义自定义数据类型的成员,与定义D1.1.命令的参数基本相同(具体含义请参考上文),只是有一点不同:如果D1.1.命令号效为数沮.将忽珞“传址”设置并总是认为“传址”:但如果自定义数据类型成员为新组.仲

12、与否有不同的含义.比外,自定义数据类型的成员“数姐”属性密指定一个明确的数值,而不象D1.1.命令参数那样仅仅设置一个标志.在官定义数据类型的成员为蚣组时,如果设置“传址二表示在此官定义数据类型中该成员位置处只存转数温数据的内存苜地址:如果不设置传址,表示在此自定义翻据类型中该成员位置处的数据为所有数坦数据的喉序排放.至于如何判断某自定义豌禺类型成员是否为“教也”及是否应该“传址二则应祝具体的自定义数抠类型及其说明文档而定,有时还需考虑该成员的“语义”。下密举例说明.清6CPINFO这个i构的C+定义及其时应的易语言囱定义1据类型:且01定义反哥立定义struct-CPinfo(U1.NrMaxCharSize;BYTEDefauItCharWAX_DEFAU1.TeHAR:BYTE1.eadByteMAXJEADBYTES:CP1.NFO.*1.PCI,INFO:数据划J名公开备注CFDfTO成fig类型住址数组备注NxChrSiz整数空DQqUItChW字节里21.eadByte字节型12CP1.NFO的最后两个成员都是字节型数组,且不是地址,所以应将其分别定义为“字节型”“数俎”(数俎长度分别为MAtDEFAU1.TcHAR和MX.1.EADBYTES,VC相应头文件得知两个常量的假分别是2和12).自定义数掇类里戌员是数组且济要“传址”的

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > Labview

copyright@ 2008-2023 yzwku网站版权所有

经营许可证编号:宁ICP备2022001189号-2

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!