gpt4 book ai didi

c# - 将 32 位 dll 转换为 64 位 dll

转载 作者:可可西里 更新时间:2023-11-01 08:43:20 29 4
gpt4 key购买 nike

当我尝试在无法加载的 64 位应用程序中使用它时,我有 32 位编译的 dll,所以我想将 dll 转换为 64 位。当应用程序的平台从“任何 CPU”或“x64”更改为“x86”时,它工作正常。但是我想在 64 位下使用它,因为我要从 ASP 页面调用 dll。

请帮我解决这个问题。

最佳答案

Windows 无法将 32 位 dll 加载到 64 位进程中 - 这是您无法规避的限制。这意味着,如果您的 32 位 DLL 对其他 32 位 DLLS(或使用任何 32 位 .Net DLLS)执行任何 P/调用,您将完全倒霉(您需要在 32 位中运行整个网站)。

您并不完全清楚它何时有效,何时无效。以下是解释:

  1. x86 - 32 位 - 无法加载到 64 位进程中。
  2. x64 - 64 位 - 无法在 32 位机器上执行。
  3. AnyCPU - 双 - 可以在两种环境中加载和执行。

在 AnyCPU 方面:

  1. 64 位机器上的 64 位进程 - DLL 作为 64 位加载。
  2. 32 位机器上的 32 位进程 - DLL 作为 32 位加载。
  3. 64 位机器上的 32 位进程 - DLL 作为 32 位加载。

在大多数情况下,将其保留为 AnyCPU 即可。但是,正如我所说,如果您使用任何 native 或 .Net 32​​ 位 DLL,则需要将整个应用程序设为 32 位(对此您无能为力,Microsoft 也无能为力)。

关于c# - 将 32 位 dll 转换为 64 位 dll,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/944962/

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