gpt4 book ai didi

javascript - js-ctypes : Pointer to intptr_t

转载 作者:行者123 更新时间:2023-11-28 01:12:16 35 4
gpt4 key购买 nike

在 ctypes 中我有

TBButton.ptr(ctypes.UInt64("0x1e677e60")

这相当于 aButton.address()在这行代码中:

var rez = SendMessage(hToolbar, 0x417 /** TB_GETBUTTON **/, 1, aButton.address());

当我运行此代码时,出现错误:

Exception: expected type intptr_t, got TBButton.ptr(ctypes.UInt64("0xaa4eb20"))

所以这是因为在我的 SendMessage 中定义我有这个:

var SendMessage = user32.declare('SendMessageW', ctypes.winapi_abi, ctypes.intptr_t,
ctypes.voidptr_t, // HWND
ctypes.uint32_t, // MSG
ctypes.uintptr_t, // WPARAM
ctypes.intptr_t // LPARAM
);

所以我的问题是: TBButton.ptr(ctypes.UInt64("0x1e677e60") 的类型是什么这样我就可以改变LPARAMSendMessage对此类型的定义。

或者:是否可以将其设为 intptr_t ?类似 ctypes.intptr_t(aButton.address()) ,我试过了,它不起作用。

最佳答案

它是一个指向TBButton的指针,无论TBButton是什么,而intptr_t实际上是一个足够大的整数来保存指针地址。

您需要将指针转换为 intptr_t

var lparam = ctypes.cast(tbbuttonptr, ctypes.intptr_t);

关于javascript - js-ctypes : Pointer to intptr_t,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24280575/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com