关于数据结构的问题
typedef struct {POINT pt;
DWORD mouseData;
DWORD flags;
DWORD time;
ULONG_PTR dwExtraInfo;
} MSLLHOOKSTRUCT, *PMSLLHOOKSTRUCT;
在上面红色标识的数据类型在au3中该如何书写呢?
Const $tagSTRUCT = "POINT pt;dword mouseData;dword flags;dword time;ulong_ptr dwExtraInfo"
我写成这样子,程序运行没有提示错误,但是得到的结果却是错误的,这种类型的数据结构在au3中该怎么书写呢?
[ 本帖最后由 gto250 于 2008-8-12 17:29 编辑 ] Hook?
POINT pt 应该用DllStructCreate 创建一个样式才对。
$tagSTRUCT = DllStructCreate("int X;int Y;dword MouseData;dword Flags;dword Time;ulong ExtraInfo", $lParam)
$X = DllStructGetData($tagSTRUCT , 1)
$Y = DllStructGetData($tagSTRUCT , 2)
像这样的结构,在C++中经常用到的。不过我也是一知半解的^_^ 这个不叫做数据结构吧,在C中称为结构体。楼主的这个POINT应该是指针变量,AU3中我还的确不知道怎么写……
另,我认为“Const $tagSTRUCT = "POINT pt;dword mouseData;dword flags;dword time;ulong_ptr dwExtraInfo"”这句话有问题(当然,仅仅是个人的浅薄看法),AU3中常量与变量都是变体类型的,这句常量声明中的“$tagSTRUCT ”AU3理论上是把它做字符串型数据处理的,而不是按照结构体进行处理。
如果楼主是参阅了UDF部分关于结构体的部分,此部分中并未找到您所使用的$tagSTRUCT ,至少我的帮助里没有
[ 本帖最后由 skyfree 于 2008-8-12 08:15 编辑 ] $tagSTRUCT是变量名。自定义的。 如果是自定义的变量名,那这个90%的肯定是错了。 变量名怎么有错?错的只是他定义的POINT pt 部份。按我理解的的第一个回复,应该是没有问题的了。 sanhen正解
试验成功
谢谢了
页:
[1]