gpt4 book ai didi

.net - x64 应用程序可以使用 x86 程序集吗?反之亦然?

转载 作者:行者123 更新时间:2023-12-02 09:05:58 25 4
gpt4 key购买 nike

我的应用程序是作为 x64 应用程序构建的。迁移到 VS2010 后我得到 some problems这似乎与引用的 dll 中的某些 x64/x86 不匹配有关。现在我转向目标 .NET4,我得到了更多 similar problems

我的问题是:混合 x64 和 x86 时需要采取哪些预防措施。到底能做到吗?我认为 x64 应用程序应该能够毫无问题地使用 x86 dll。不?那另一种方式呢? x86 应用程序是否可以引用 x64 dll - 只要它在 x64 平台上运行?我需要注意哪些陷阱?

最佳答案

不可以,64位进程只能加载64位DLL,32位进程只能加载32位DLL。您可能想到的是 64 位操作系统可以运行 32 位进程

.NET 的主要问题是 - 在 VS2010 之前 - 可执行项目默认为“AnyCPU”,这意味着它将以其运行的操作系统的“ native ”格式加载(因此 32 位版本为 32 位) Windows 和 64 位(适用于 64 位版本的 Windows)。问题在于,如果您在 32 位 Windows 上测试应用程序(例如),那么如果您加载 32 位 DLL 并尝试在 64 位 Windows 上运行,应用程序可能会崩溃。

在 VS2010 中,他们默认将所有可执行项目默认为“x86”(即 32 位),这(在很大程度上)缓解了问题。

关于.net - x64 应用程序可以使用 x86 程序集吗?反之亦然?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2698830/

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