2017-04-04 15 views
0

V8을 시작하는 데 문제가 있다는 것을 알 수 없습니다. 이 코드가 있습니다Isolate :: New()를 호출 한 후 0x0000000000000000 위치를 실행하는 액세스 위반

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); 

을하지만이 오류 얻을 :

것 같다

Exception thrown at 0x0000000000000000 in V8.Net.Console.exe: 0xC0000005: Access violation executing location 0x0000000000000000.

v8_libbase.dll!v8::base::OS::Abort() Line 832 C++ v8_libbase.dll!V8_Fatal(const char * file, int line, const char * format, ...) Line 74 C++ v8.dll!v8::internal::SnapshotData::SnapshotData(const v8::internal::Vector snapshot) Line 28 C++ v8.dll!v8::internal::Snapshot::Initialize(v8::internal::Isolate * isolate) Line 43 C++ v8.dll!v8::Isolate::New(const v8::Isolate::CreateParams & params) Line 8237 C++ V8_Net_Proxy_x64.dll!V8EngineProxy::V8EngineProxy(bool enableDebugging, void()() debugMessageDispatcher, int debugPort) Line 89 C++ V8_Net_Proxy_x64.dll!CreateV8EngineProxy(bool enableDebugging, void()() debugMessageDispatcher, int debugPort) Line 19 C++ [Managed to Native Transition]
V8.Net.dll!V8.Net.V8Engine.V8Engine() Line 246 C# V8.Net.Console.exe!V8.Net.Program.Main(string[] args) Line 31 C# [Native to Managed Transition]
mscoreei.dll!00007ffdbdd281ad() Unknown mscoree.dll!00007ffdbddc10ab() Unknown kernel32.dll!00007ffdd3868364() Unknown ntdll.dll!00007ffdd5ef70d1() Unknown

것은 여기에 실패 할 :

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

...하지만 왜 나는 null 오류가 나타납니다. 나는 뭔가를 놓치고 있어야합니다 ...

답변

0

Nevermind, 나는 항상 사물을 알아 낸 것 같습니다. 내가 x86 디렉토리가 아닌 x64 디렉토리에서로드하는 것으로 밝혀졌습니다 (V8_Net_Proxy_x64.dll! lol).

나는이 질문을 삭제할 예정 이었지만, 밤중에 잠 들어있는 다른 누군가가이 사건에 빠졌을 때를 대비하여 여길 떠날 것입니다. ;)