我目前正在尝试让一个 Windows 编译程序通过 Wine 在 Linux 和 MacOSX 上运行。
当我通过 wine 运行该程序时,它提示我安装 Gecko,我照做了。稍后,程序会尝试使用 MSHTML 来呈现 HTML,但我在控制台上收到这些错误消息。
err:mshtml:init_xpcom NS_InitXPCOM2 失败:80004005 err:mshtml:HTMLDocument_Create 无法初始化 Gecko,返回 CLASS_E_CLASSNOTAVAILABLE fixme:ole:CoCreateInstance 没有为类 {25336920-03f9-11cf-8fd0-00aa00686f13} 的接口 {00000000-0000-0000-c000-000000000046} 创建实例,hres 为 0x80040111
我正在使用 Wine 1.1.34,据说 1.1.33 中已经修复了类似的错误
http://bugs.winehq.org/show_bug.cgi?id=12578
我整个下午都在做这件事,我是否遗漏了什么?
谢谢,尼克
答案1
即使使用 winetricks,wine 也不支持 com,因此创建 com 组件将导致此错误。没有修复。
答案2
因此,如果您输入“wine iexplore.exe”,它会打开 wine 版本的 Internet Explorer(gecko)吗?
你说这个程序是“windows 编译的”。是你编译的吗?你用过 visual studio 吗?
如果这是一个.NET应用程序,您将需要使用mono来运行它。
答案3
尝试葡萄酒技巧。
按着这些次序:
wget http://www.kegel.com/wine/winetricks
chmod a+x winetricks
env WINEPREFIX=yourwineprefix ./winetricks gecko
winetricks 是我最喜欢的 wine 工具,它能帮助你修复大量问题。
答案4
我遇到了非常类似的问题,因为我使用的是 64 位 Wine,并且只安装了 64 位 Gecko。事实证明,有时您可能需要 64 位和 32 位 Gecko。我遇到的错误是“ 01ff:err:mshtml:create_document_object Failed to init Gecko, returning CLASS_E_CLASSNOTAVAILABLE
”。
安装 64 位和 32 位 Gecko 后,问题消失并且渲染开始工作。
我使用了最新的 Gecko 安装程序https://wiki.winehq.org/Gecko
并使用 安装它们msiexec /i <installer>.msi
。