Кажется, я не могу понять, как запустить V8. У меня есть такой код:
if (!_V8Initialized)
{
v8::V8::InitializeICU();
v8::V8::InitializeExternalStartupData("x86\\"); // (this loads ok, I checked)
auto platform = v8::platform::CreateDefaultPlatform();
v8::V8::InitializePlatform(platform);
v8::V8::Initialize();
_V8Initialized = true;
}
auto params = Isolate::CreateParams();
params.array_buffer_allocator = ArrayBuffer::Allocator::NewDefaultAllocator();
_Isolate = Isolate::New(params);
Но я получаю такую ошибку:
Исключение с кодом 0x0000000000000000 в V8.Net.Console.exe: 0xC0000005: место выполнения нарушения прав доступа 0x0000000000000000.
v8_libbase.dll! v8 :: base :: OS :: Abort () Строка 832 C ++ v8_libbase.dll! V8_Fatal (const char * file, int line, const char * format, ...) Строка 74 C ++ v8.dll! v8 :: internal :: SnapshotData :: SnapshotData (const v8 :: internal :: Vector snapshot) Строка 28 C ++ v8.dll! v8 :: internal :: Snapshot :: Initialize (v8 :: internal :: Isolate * isolate) Строка 43 C ++ v8.dll! V8 :: Isolate :: New (const v8 :: Isolate :: CreateParams & params) Строка 8237 C ++ V8_Net_Proxy_x64.dll! V8EngineProxy :: V8EngineProxy (bool enableDebugging, void () () debugMessageDispatcher, int debugPort) Строка 89 C ++ V8_Net_Proxy_x64.dll! CreateV8EngineProxy (bool enableDebugging, void () () debugMessageDispatcher, int debugPort) Строка 19 C ++ [Управляемый переход на собственный]
V8.Net.dll! V8.Net. V8Engine.V8Engine () Строка 246 C # V8.Net.Console.exe! V8.Net.Program.Main (string [] args) Строка 31 C # [Переход от собственного к управляемому]
mscoreei.dll! 00007ffdbdd281ad () Неизвестно mscoree .dll! 00007ffdbdd c10ab () Неизвестно kernel32.dll! 00007ffdd3868364 () Неизвестно ntdll.dll! 00007ffdd5ef70d1 () Неизвестно
Кажется, здесь не работает:
explicit SnapshotData(const Vector<const byte> snapshot)
: SerializedData(const_cast<byte*>(snapshot.begin()), snapshot.length()) {
CHECK(IsSane()); <-- THIS FAILS
}
Я следил за исходным кодом здесь (по большей части): https://chromium.googlesource.com/v8/v8/+/branch-heads/4.8/samples/hello-world.cc
... но я не уверен, почему мне кажется, что я получаю нулевую ошибку. Я, должно быть, что-то упускаю ...