আমি আমার গেম এবং কোড ব্যাখ্যাটি ভাল কাজ করে এর বিপরীতে ভি 8 সংকলন করতে এবং লিঙ্ক করতে সক্ষম হয়েছি। তবে আমি আমার কোডটি ভাগ করতে চাই এবং গেম লুপটি একটি থ্রেডে থাকা উচিত এবং স্ক্রিপ্টিং ইঞ্জিনটি আমার গেম লুপের পাশাপাশি একটি দ্বিতীয় থ্রেডে চালানো উচিত। আমি এসডিএল ব্যবহার করছি এবং তাই এই কোডটি একটি নতুন থ্রেড ছড়িয়ে দেওয়ার চেষ্টা করেছি
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;
}
}
তবে আমি কোনো ত্রুটির সম্মুখীন হয়েছেন Access violation reading location 0x00000000.
মধ্যে api.cc
লাইন 716: i::Isolate* isolate = env->GetIsolate();
।
আমি কীভাবে এটি ঠিক করতে পারি বা সঠিক সমস্যাটি কী তা সম্পর্কে কারও কি কোনও ধারণা রয়েছে?