当我尝试在 64 位应用程序中使用它时,我有 32 位编译的 dll,但它无法加载,
所以我想将dll转换为64位。当应用程序的平台从“任何CPU”或“x64”更改为“x86”时,它工作正常。但我想在 64 位下使用它,因为我要从 ASP 页面调用 dll。
这个你能帮我吗。
Windows 无法将 32 位 dll 加载到 64 位进程中 - 这是您无法规避的限制。这意味着,如果您的 32 位 DLL 对其他 32 位 DLL 执行任何 P/调用(或使用任何 32 位 .Net DLL),您将完全不走运(您将需要以 32 位运行整个网站)。
您并不完全清楚它何时有效、何时无效。以下是解释:
- x86 - 32 位 - 无法加载到 64 位进程中。
- x64 - 64 位 - 无法在 32 位计算机上执行。
- AnyCPU - 双 - 可以在两种环境中加载和执行。
就AnyCPU而言:
- 64 位机器上的 64 位进程 - DLL 以 64 位加载。
- 32 位机器上的 32 位进程 - DLL 作为 32 位加载。
- 64 位机器上的 32 位进程 - DLL 作为 32 位加载。
在大多数情况下,将其保留为 AnyCPU 就可以了。然而,正如我所说,如果您使用任何本机或 .Net 32 位 DLL,您将需要将整个应用程序设为 32 位(您或 Microsoft 对此无能为力)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)