@251804974 写道:
我在c++中开启了一个多线程,然后在这个多线程中用ScriptingCore调用js代码。出现访问冲突的内存报错,仔细检查了一边,方法中并没有访问资源,只有一个简单的全局变量的访问。 错误信息 0x530C7E8A (mozjs-33.dll) (HQT.exe 中)处的第一机会异常: 0xC0000005: 读取位置 0x00000004 时发生访问冲突。 0x530C7E8A (mozjs-33.dll) (HQT.exe 中)处有未经处理的异常: 0xC0000005: 读取位置 0x00000004 时发生访问冲突。 c++中多线程中调用的代码 ScriptingCore* scrCore = ScriptingCore::getInstance(); JSContext* jc = scrCore->getGlobalContext(); jsval owner = OBJECT_TO_JSVAL(scrCore->getGlobalObject()); jsval codeid; codeid = uint32_to_jsval(jc, codeId); bool bCodeId = scrCore->executeFunctionWithOwner(owner, "CommonServerResponse", 1, &codeid);
js中的代码
var CommonServerResponse = function(codeid){
if (!codeid) {return;}
cc.log("2222222222222222="+codeid);
var info = g_ServerRequestInfo[codeid];
if (info) {
cc.log("33333333333333333"+codeid);
DiyReceiveData(codeid);
var callback = info["callback"];
var protocol = info["protocol"];
var layer = info["layer"];var Builder = g_ProtoBufBuilder.build(protocol); var protoObj = Builder.decode(g_SerProBuf); callback(protoObj); layer.FadeOut(); layer = null; }
};
帖子: 2
参与者: 1