在64位计算机上使用32位dll

时间:2011-04-19 04:53:39

标签: dll 64-bit 32bit-64bit

我有一个使用32位dll的旧项目。这在32位处理器上工作正常,但是当我在64位操作系统上安装相同的项目时,它不起作用。

有没有办法将32位dll转换为64位?是否有替代解决方案使我的32位DLL在64位操作系统中工作?

1 个答案:

答案 0 :(得分:5)

只要将32位dll加载到32位进程中,32位dll就可以正常工作 - 尝试将32位dll加载到64位进程中将会失败。

如果您的项目是.Net(例如C#)应用程序,那么您应该能够在x86上定位程序集,以使您的32位DLL工作正确:

  • 在Visual Studio中右键单击您的项目,然后选择“属性”
  • 在“构建项目属性”选项卡上,确保“平台”目标下拉列表显示“x86”而不是“任何CPU”

如果你的平台目标是“任何CPU”,那么你的项目通常会针对任何可用的平台,即64位操作系统上的x64 - 这将阻止你的32位dll被加载。

如果您的项目不是.Net程序集,那么执行上述操作所需的等效步骤将会有所不同。

或者您可以尝试获取64位版本的dll - 如果它是您生成的dll,那么您需要自己将其迁移到64位。如果没有,那么您依赖于提供64位兼容版本的原始供应商。