【问题标题】:Converting unmanaged C++ code from 32 bit to 64 bit将非托管 C++ 代码从 32 位转换为 64 位
【发布时间】:2011-01-31 04:37:24
【问题描述】:

我有一个生成 dll 的非托管 C++ 32 位应用程序。现在,我想为 64 位系统构建它。我的开发系统是32位的。它使用 oledb.lib activeds.lib adsiid.lib ws2_32.lib 库来构建 dll。到目前为止我所做的是:更改了配置设置并将 Active 解决方案平台设置为 x64。它成功地构建了应用程序。但我无法在 64 位机器上注册 dll。当我尝试这样做时,出现以下错误:

无法加载 DLL C:\Windows\System32\KBTicketExperience.dll

进程名:dllhost.exe

Comsvc​​s.dll 文件版本:组件注册期间的 ENU 2001.12.8530.16385 shp。无法验证 DLL 入口点。

你能告诉我如何摆脱这个问题吗?提前致谢。

【问题讨论】:

  • 什么 KBTicketExperience.dll,为什么它在System32中?
  • 您的 64 位应用程序是否仍在尝试加载 32 位 DLL? 64 位应用程序/DLL 无法加载 32 位 DLL,反之亦然。
  • 我也有这个问题。有没有办法在 64 位机器上使用 32 位 DLL?
  • 您可以在 64 位机器上使用 32 位 dll,但只能在 32 位 exe 中使用。

标签: c++ unmanaged 32bit-64bit


【解决方案1】:

我建议创建一个新的项目/工作区来构建这个 64 位的 DLL,并且没有 32 位的任何东西。假设这个项目工作的 DLL,您可以更仔细地查看项目之间的差异并从中获得。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-04-01
    • 1970-01-01
    • 2011-02-28
    • 1970-01-01
    • 2017-07-22
    • 2022-06-24
    • 1970-01-01
    • 2011-01-05
    相关资源
    最近更新 更多