gpt4 book ai didi

.net - 在 64 位 Windows 计算机上使用 32 位 com 运行 32 位应用程序

转载 作者:行者123 更新时间:2023-12-02 20:56:23 24 4
gpt4 key购买 nike

我有一个使用 C++ COM 对象的 C# 应用程序,两者都构建在 32 位计算机上。现在我必须在 64 位机器上运行它们。我注册了COM对象。在计算机\hkey_classes_root\wow6432node\clsid{xxx} 下的寄存器中创建了相应的条目。但是,当我尝试运行该应用程序时,它显示“由于以下错误,检索具有 CLSID {xxx} 的组件的 COM 类工厂失败:80040154。”。据我了解,错误代码意味着该类未注册。请帮忙!!!谢谢

最佳答案

上面的第一个答案是正确答案。如果引用 32 位 COM 组件,则无法在 64 位 Windows 上运行 CPU ANY 目标应用程序。它不会加载。

发生的情况是,JIT 发现 CPU ANY 并将您的应用程序升级到 64 位。但没有 64 位版本的 com 控件,因此您会收到未注册错误。

对于使用 Microsoft Access 作为数据库的人来说,这是一个大问题。 Access 没有 64 位版本,因此当他们看到错误时,他们认为需要 64 位运行时(不存在)。您必须将应用程序标记为 32 位才能使用 Access 运行时。

这是一个糟糕的选择(恕我直言) - 找到一个更好的 64 位版本组件,或者使用 100% 托管代码。

我不喜欢将每个应用程序都标记为 32 位,除非它们真的需要它。

关于.net - 在 64 位 Windows 计算机上使用 32 位 com 运行 32 位应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/972305/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com