js-ctypes: Pointer to intptr_t
js-ctypes: Pointer to intptr_t
在ctypes中我有
TBButton.ptr(ctypes.UInt64("0x1e677e60")
这相当于这行代码中的aButton.address()
:
var rez = SendMessage(hToolbar, 0x417 /** TB_GETBUTTON **/, 1, aButton.address());
当我运行这段代码时,我得到错误:
异常:期望类型intptr_t,得到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")
的类型是什么,以便我可以将SendMessage
定义中的LPARAM
更改为这种类型。
或者:是否有可能使其成为intptr_t
?像ctypes.intptr_t(aButton.address())
这样的东西,我试过了,它不起作用。
这是一个指向TBButton
的指针,不管TBButton
是什么,而intptr_t
实际上是一个大到足以容纳指针地址的整数。
您需要将指针强制转换为intptr_t
。
var lparam = ctypes.cast(tbbuttonptr, ctypes.intptr_t);
相关文章:
- 节点Js:How to catch a“;没有这样的文件或目录“;读取线模块出错
- jQuery AJAX write to XML
- grep in JQuery to C#
- how to convert html <div> to pdf
- Node.js - POST to iFrame?
- SVG xml to image
- Advantages to DOMParser vs template & innerHTML
- how to split a string with ','
- How to declare a Map containing certain properties with flow
- Php variable obj to js
- 如何在submit to sightly时将表单输入值作为参数传递给WCMUsePojo
- D3JS selectAll to append rect
- Javascript connect to websocket
- Underscore each to update collection
- 在哪里可以找到R-to-JavaScript编译器
- SCEditor BBcode to HTML parsing
- Javascript RegEx to XML Schema RegEx
- How to apply javascript on <asp:Buttonfield>?
- PHP Vars to JavaScript Laravel 5.2
- html image blob to base64