将32位dll转换为64位dll

问题描述 投票:0回答:1

我有一个32位的dll文件,如何在64位编译器中运行它?

我正在设计一个运行 32 位 dll 文件的中间应用程序并将其发送到 64 位主应用程序,但这并不是我想要的。

对于 C#

c# windows visual-studio dll dllimport
1个回答
0
投票

如果文件是纯 .net 程序集,您只需更改程序集上指定平台的标志即可。有关详细信息,请参阅在“任何 CPU”.NET 程序集上强制 x86 CLR。您可以使用相同的技术将 x86 更改为 x64。但是,如果程序集具有任何特定于平台的依赖性,您可能会遇到麻烦,这将是使用特定平台而不仅仅是“任何 CPU”的主要原因。

如果您的 dll 包含任何本机代码,那么您就不走运了。您也许可以尝试使用

c++ 反编译器,然后再使用编译器,但如果没有大量手动编辑,反编译输出很可能无法编译。重新编译本机代码的一般问题是无法解决的,因为在不实际运行程序(即运行时仿真)的情况下无法区分指令和数据。

一般的解决方法是在另一个进程中运行 32 位代码,并使用您最喜欢的进程间通信协议在进程之间进行通信。

© www.soinside.com 2019 - 2024. All rights reserved.