मैं अपने खेल के खिलाफ V8 को संकलित और लिंक करने में सक्षम था और कोड व्याख्या ठीक काम करती है। हालाँकि मैं अपने कोड को विभाजित करना चाहता हूं और गेम लूप एक थ्रेड में मौजूद होना चाहिए और स्क्रिप्टिंग इंजन को मेरे गेम लूप के साथ दूसरे थ्रेड में चलाना चाहिए। मैं एसडीएल का उपयोग कर रहा हूं और इसलिए इस कोड को एक नया धागा बनाने की कोशिश की
SDL_CreateThread(ScriptingEngine::SpawnMain, NULL);
जहां निम्नलिखित कोड मेरे परीक्षण स्क्रिप्टिंग इंजन है:
namespace ScriptingEngine {
v8::HandleScope handleScope;
v8::Handle<v8::ObjectTemplate> global = v8::ObjectTemplate::New();
v8::Persistent<v8::Context> context;
void Setup() {
// TODO: bind functions to global
// ...
context = v8::Context::New(NULL, global);
}
int SpawnMain(void *arguments) {
v8::Context::Scope scope(context);
v8::Handle<v8::Script> script = v8::Script::Compile(
v8::String::New("'Hello World'")
);
v8::Handle<v8::Value> result = script->Run();
context.Dispose();
return EXIT_SUCCESS;
}
}
हालाँकि मुझे लाइन 716 Access violation reading location 0x00000000.
में एक त्रुटि मिलती है :।api.cc
i::Isolate* isolate = env->GetIsolate();
किसी को भी पता नहीं है कि मैं इसे कैसे ठीक कर सकता हूं या सटीक समस्या क्या है?