嵌入 Chakra JavaScript 引擎无法初始化 COM 接口
Embedding Chakra javascript engine failed to initialize COM interfaces
我刚刚编译了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 示例。
希望这有帮助。
相关文章:
- 是否可以初始化不可复制类型的成员变量(或基类)
- C++使用整数的压缩数组初始化对象
- C++初始化基类
- 多成员Constexpr结构初始化
- 复制列表初始化的隐式转换的等级是多少
- 内联映射初始化的动态atexit析构函数崩溃
- 如何在C++中初始化嵌套类中的2个memeber
- 如何声明特征矩阵,然后通过嵌套循环初始化它
- 没有用于初始化C++中的变量模板的匹配构造函数
- 在未初始化映射的情况下,将值插入到映射的映射中
- C++成员初始化
- 为什么在C++中首先初始化成员类
- 为多个 COM 操作初始化 COM
- 初始化com对象的问题
- 为什么初始化COM库失败
- 初始化COM安全性失败
- 初始化COM C++服务多线程的正确方法
- 多线程客户端中 COM 对象的初始化和实例化
- 嵌入 Chakra JavaScript 引擎无法初始化 COM 接口
- c++源码组织- COM端口初始化