调用:

DllCall("dll","返回值类型","函数名称"[,"类型1",参数1[,"类型n",参数n]])

参数:

dll -> 要使用的 DLL 文件名,例如 "user32.dll",也可使用由DllOpen获得的句柄。

返回值类型 -> 函数的返回值类型。

函数名称 -> 调用DLL文件里面的函数名称, 如: "MessageBox"或者使用序号。

类型 -> [可选参数]参数的数据类型。

参数 -> [可选参数]实参。

type n -> [可选参数] 参数的数据类型。

param n -> [可选参数] 实参。

值类型为:

none -> 没有值(仅用作无返回值函数的返回类型,这点跟C语言类似)。

BYTE -> 8 位(bit)整数。

BOOLEAN -> 无符号 8 位(bit)整数。

short -> 16 位整数。

USHORT -> 无符号16 位整数。

WORD -> 无符号16 位整数。

int -> 32 位整数。

long -> 32 位整数。

BOOL -> 32 位整数。

UINT -> 无符号 32 位整数。

ULONG -> 无符号 32 位整数。

DWORD -> 无符号 32 位整数。

INT64 -> 64 位整数。

UINT64 -> 无符号 64 位整数。

ptr -> 常规指针(void *)。

HWND -> 窗口句柄(指针)。

HANDLE -> 一个句柄(指针)。

float -> 单精度浮点指针数。

double -> 双精度浮点指针数。

INT_PTR, LONG_PTR, LRESULT, LPARAM -> 一个大型整数指针.(目前x86,x64版本AutoIt都可以使用)。

UINT_PTR, ULONG_PTR, DWORD_PTR, WPARAM -> 一个大型无符号整数指针.(目前x86,x64版本AutoIt都可以使用)。

str -> ANSI 字符串(不能超过 65536 个字符)。

wstr -> UNICODE 宽字符串(转换 到/从 ANSI 字符串,部分CALL需要). 不能超过 65536 字符。

* -> 传递一个其它类型(添加一个*到末尾.) 例如 "int*" 传递一个指针到 "int" 类型。

返回值:

成功 -> @error = 0

失败 -> 设置 @error

1 -> 不能使用这个DLL文件。

2 -> 未知"返回值"。

3 -> 未在DLL文件中找到这个"函数"。

4 -> 参数数量错误。

Windows API类型转换为AutoIt类型:

LPCSTR/LPSTR -> str

LPCWSTR/LPWSTR -> wstr

LPVOID -> ptr

LPxyz -> xyz*

HINSTANCE -> handle

HRESULT -> long

LONGLONG/LARGE_INTEGER -> INT64

ULONGLONG/ULARGE_INTEGER -> UINT64

SIZE_T -> ULONG_PTR

代码案例:DllCall("user32.dll", "int", "MessageBox", "hwnd", 0, "str", "这里是要描述的文字", "str", "这里是标题", "int", 0)

DllCall("user32.dll", "int", "MessageBox", "hwnd", 0, "str", "这里是要描述的文字", "str", "这里是标题", "int", 64)

autoit3转换php,AutoIt3调用动态链接库DLL相关推荐

  1. Unity调用动态链接库dll和so

    [001]Unity调用动态链接库dll和so  ApolloAR https://www.jianshu.com/p/f37bb72979a1 一.PC平台 (注:环境 VS2017+Unity20 ...

  2. VC++6.0如何创建与调用动态链接库(dll)

    VC++支持的DLL: DLL的编制与具体的编程语言及编译器无关,动态链接库随处可见,VC++支持三种DLL:非MFC动态库.MFC规则DLL和MFC扩展DLL.DLL导出函数(或变量.类)可供应用程 ...

  3. Matlab调用动态链接库DLL文件

    环境:vs2015.Matlab2020 VS2015中建立工程, 建立工程如下两图所示 在头文件和源文件中分别添加头文件和源文件(代码如下所示) 头文件matdll.h文件 #pragma once ...

  4. Qt生成调用动态链接库dll

    把编译好的包含函数和变量的目标代码存储到文件中,在链接的时候让链接程序自动从文件中查找需要的代码.这个文件就是链接库,又可以分为静态链接库和动态链接库. 1. 静态链接库 链接程序从库中寻找需要的符号 ...

  5. Windows 下 JNI 调用动态链接库 dll

    1. Java调用本地代码常见的两种方案 JNI JNI(Java Native Interface),有过不同语言间通信开发经历的一般都知道,它允许java和其他语言代码(尤其是C/C++)进行交互 ...

  6. 使用Matlab调用动态链接库dll

    1.下载.安装和配置环境变量MinGW-w64 C/C++ 1.1 下载网址 http://tdm-gcc.tdragon.net/download 1.2 默认地址安装 1.3 配置环境变量 新建系 ...

  7. 【专题】C#调用动态链接库DLL

    1.概述 动态链接库(Dynamic Linked Library):将写好的函数存在库中,以供其他程序开发调用,调用方式为"动态的".  Windows为应用程序提供了丰富的函数 ...

  8. Python调用动态链接库DLL文件

    目录 方法一.ctypes库方式 方法二.shell方式 方法一.ctypes库方式 使用ctypes库调用.这个方法网上一搜都是. import ctypes obj = ctypes.WinDLL ...

  9. autoit3转换php,AutoIt3 脚本函数用法中文说明

    AutoIt3 脚本函数用法中文说明 系统环境变量类 EnvUpdate ( ) ;更新环境变量 EnvGet ( "变量名称" ) ;取环境变量 ClipGet ( ) ;取剪辑 ...

  10. 制作和unity调用动态链接库dll文件

    首先用vc建立一个dll工程 然后在里面建立一个testunity.h文件.内容如下 1 extern "C" int _declspec(dllexport)testunity( ...

最新文章

  1. 太励志!80 后草根创业者自学编程年收入上亿
  2. No such file or directory: jupyter-1.0.0.dist-info\\METADATA
  3. C什么k什么_cssci跟c刊有什么区别
  4. 密码中不能包含全角字符的正则表达式
  5. 【洛谷P3389】【模板】高斯消元
  6. mysql导出表_mysql导出表的3种方式
  7. Python爬虫从入门到放弃(二十)之 Scrapy分布式原理
  8. 库克:苹果已完全使用可再生能源供电
  9. LeetCode(38)——报数(JavaScript)
  10. Atiti  attilax主要成果与解决方案与案例rsm版
  11. okcc呼叫中心外呼系统使用教程
  12. Android 加载数据等待时 小人奔跑进度动画
  13. 电脑专业英语1695词
  14. ICPC2017网络赛(西安)B coin (概率计算)
  15. H5 Handlebars的简单使用
  16. ubuntu下制作.c模板
  17. 前端自动化部署,基于scp2,ssh2
  18. 有苦有乐的算法 --- 随机快排
  19. 灵魂三问:什么是接口测试,接口测试怎么玩,接口自动化测试怎么玩?
  20. 基于Java+MySQL的学生成绩管理系统

热门文章

  1. spark-streaming 编程(二) word count单词计数统计
  2. shiro加盐走源码
  3. 挺进商用车自动驾驶,德赛西威与MAXIEYE联合发布“九逵计划”
  4. 81章 老子1章到_《道德经》81章全文(建议收藏)
  5. (实战)决策树例子+画图
  6. cipher 加密解密
  7. 如何让计算机显示隐藏的文件夹,隐藏的文件夹如何显示 win7与xp系统显示隐藏文件夹的设置方法...
  8. 怎么把计算机隐藏文件显示出来,怎么把隐藏的文件夹显示出来
  9. 【我的新书】一步一步学SpringBoot 2:微服务项目实战
  10. 初始值设置项里有未知的字段ndo_change_mtu