嵌入 Chakra JavaScript 引擎无法初始化 COM 接口
本文关键字:初始化 COM 接口 Chakra JavaScript 引擎 嵌入 | 更新日期: 2023-09-27 18:31:00
我刚刚编译了ChakraCore并运行了Hello World Sample。
当我构建ChakraCore时,没有发现任何错误。
但是当我运行HelloWorld sampl System.Runtime.InetropServices.SEHException发生在ChakraHost.Hosting.Native.JsCreateContext(JavaScriptRuntime runtime,JavaScriptContext&newContext)时。
它说外部组件引发了异常。
所以我启用了本机代码调试,发现 ChakraCore 中的断言失败和断言消息如下所示。
断言Msg(false,"无法初始化 COM 接口,验证是否使用了正确版本的全球化 dll。
然后我搜索了system.globalization.dll文件,并在多个文件夹中找到了该文件。
我把它复制到C:''windows''SysWOW64中,然后运行regsvr32 system.globalization.dll。
我从跑步中得到了下面的消息。
模块"system.globalization.dll"已加载,但找不到入口点DllRegisterServer。确保"system.globalization.dll"是有效的DLL或OCS文件,然后重试。
我不知道现在该怎么办。我花了几个小时来解决这个问题。
谁能帮我弄清楚这一点?
谢谢
这是我为使其工作所做的。
- 从Visual Studio 2015构建ChakraCore。我使用了调试和x64
- 复制ChakraCore/Build/VcBuild/bin/x64_debug。ChakraCore.dll to Chakra-Samples''ChakraCore Samples''Hello World''C#''HelloWorld''bin
- 转到 HelloWorld 解决方案属性并将平台目标设置为 x64
- 在 HelloWorld 按 F5 的主方法中添加断点。
就我而言,失败的行始终是:
// Create a runtime.
Native.JsCreateRuntime(JavaScriptRuntimeAttributes.None, null, out runtime);
执行上述操作后,我将运行 HelloWorld 示例。
希望这有帮助。