Javascript Js ctypes第三部分dll,返回字符串
我正在使用一个带有js ctypes的DLL,它是用C编写的 该方法返回一个字符串,但是当我尝试访问指针的内容时,firefox崩溃了 以下代码有效: 功能声明: 函数调用:Javascript Js ctypes第三部分dll,返回字符串,javascript,firefox-addon,jsctypes,Javascript,Firefox Addon,Jsctypes,我正在使用一个带有js ctypes的DLL,它是用C编写的 该方法返回一个字符串,但是当我尝试访问指针的内容时,firefox崩溃了 以下代码有效: 功能声明: 函数调用: console.log输出: ctypes.char.ptr(ctypes.UInt64("0x64ff5b48")) ctypes.char.ptr(ctypes.UInt64("0x64ff5b48")) 但此代码不起作用: 功能声明: 函数调用 console.log输出: ctypes.char.ptr(cty
console.log
输出:
ctypes.char.ptr(ctypes.UInt64("0x64ff5b48"))
ctypes.char.ptr(ctypes.UInt64("0x64ff5b48"))
但此代码不起作用:
功能声明:
函数调用
console.log
输出:
ctypes.char.ptr(ctypes.UInt64("0x64ff5b48"))
ctypes.char.ptr(ctypes.UInt64("0x64ff5b48"))
同样的事情
这样firefox就会崩溃。有人知道怎么解决这个问题吗?我这样做是为了调整插件。尝试将
str
转换为如下已知长度:var-strCasted=ctypes.cast(str,ctypes.char.array(100.ptr))代码>然后尝试如下读取字符串:var jsStr=strCasted.contents.readString()
如果不跳到35; jsctypes moz频道,应该可以做到这一点。我们将讨论它,然后在这里更新解决方案。将此粘贴到您的url栏:irc://moznet/jsctypes
关于铸造的本教程应该有帮助:我发现了问题!谢谢你,诺伊蒂德。在第二个示例中,我在str.readString()
之前关闭库。它使firefox崩溃。我试图减少问题帖子上的代码,但忘记了这个细节,很抱歉。谢谢你。对不起,请在编辑后再次检查我的问题。现在所有的代码都在那里了,我找到了导致firefox崩溃的原因,但我不知道如何解决。@Sabbathman顺便问一下,你能在你的工作和非工作代码中告诉我什么是str.toString()
我很好奇,谢谢你在做.readString()之前必须先做.toString()
由于ReadStringKKKK发生崩溃,我正在使用财政打印机DLL。我不能执行str.toString().readString()
,因为在此之后,我的对象不是CData类型,并且没有方法readString()
Ooh请再次检查问题。str.toString()在这两种情况下都是相同的。很好的发现:)我不知道如果库关闭,readString会崩溃,这很有趣,感谢大家的分享。我也有同样的问题,但事实上,这是因为我的原生代码在JS读取字符串之前释放了字符串。
Core.init();
var number = new ctypes.int32_t(1);
var result = Core.getStr(number);
console.log(result.toString());
result.readString();
ctypes.char.ptr(ctypes.UInt64("0x64ff5b48"))