我需要将~0L
传递给我的函数,我怎么能这样做,无论我做什么〜0都转向-1
这是C代码:
812 int result = GetProperty(window, property_name,
813 (~0L), // (all of them)
814 &type, &format, &num_items, &properties);
这是我的jsctypes:
var result = GetProperty(window, property_name, ctypes.long(~0), type.address(), format.address(), num_items.address(), properties.address()
请注意ctypes.long(~0)
如何将此为32位的111111111111111111111111111111
为64位的64位?
由于
答案 0 :(得分:1)
将其声明为unsigned long ~0UL
答案 1 :(得分:0)
解决方案是使用ctypes.long(~0)
这对32位和64位有用:)感谢@arai。
21:45 noida如何在jsctypes中使用〜0L?
22:07 arai noida:32位还是64位?
22:11 noida你能告诉我怎么做两个plz
22:17 arai noida:我猜ctypes.int32_t(~0)和ctypes.int64_t(~0)会起作用
22:20 noida -0x80000000
22:20 noida那不会工作吗?
22:20 arai它使用ctypes.long作为参数,所以ctypes.long(~0)会更好
22:23 arai~0L是0xFFFFFFFFFFFFFFFF,对吧?
22:24诺伊达,我认为是:0x7ffffff
22:29 arai
printf("%lx\n", ~0L);
输出" ffffffffffffffff"22:31 arai使用
会更好 22:33诺伊达也使用long方法将64/32位交叉?ctypes.long(~0)
来保持一致性22:37 arai"这会在所有平台上自动转换为Int64 JavaScript对象,因为它不知道这是32位还是64位值。这样做是为了兼容性。"
22:37 arai https://developer.mozilla.org/en-US/docs/Mozilla/js-ctypes/js-ctypes_reference/ctypes