gto250 发表于 2008-8-11 19:04:11

关于数据结构的问题

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 编辑 ]

sanhen 发表于 2008-8-11 23:05:14

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++中经常用到的。不过我也是一知半解的^_^

skyfree 发表于 2008-8-12 08:03:51

这个不叫做数据结构吧,在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 编辑 ]

sanhen 发表于 2008-8-12 08:38:20

$tagSTRUCT是变量名。自定义的。

skyfree 发表于 2008-8-12 08:43:29

如果是自定义的变量名,那这个90%的肯定是错了。

sanhen 发表于 2008-8-12 08:54:54

变量名怎么有错?错的只是他定义的POINT pt 部份。按我理解的的第一个回复,应该是没有问题的了。

gto250 发表于 2008-8-12 17:29:19

sanhen正解
试验成功
谢谢了
页: [1]
查看完整版本: 关于数据结构的问题