c# - 为什么我的 64 位程序可以成功调用 32 位 DLL?

标签 c# .net 32bit-64bit

我有一个 C# 程序,针对平台目标 x64 编译。它使用 C1.C1Zip,一个用于处理 Zip 文件的 dll 文件。检查C1.C1Zip.dll,它是一个32位的dll(PE Deconstructor says so - 32-bit words)。但是我的程序肯定是 64 位的(任务管理器是这样说的 - 详细信息选项卡上说是 64 位平台)。

我刚刚成功运行了使用 C1.C1Zip dll 的代码,并且运行良好。我被告知这是不可能的。

怎么会这样?

我可以运行哪些额外的诊断来确保我的主程序确实是 64 位的?

最佳答案

因为它不是一开始的 native dll。它只是托管代码——字节码。在这种情况下,32 位或 64 位与起始 exe 文件相关(确定进程运行的是 32 位还是 64 位),但与稍后加载的 native 程序集无关。

关于c# - 为什么我的 64 位程序可以成功调用 32 位 DLL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61057294/

相关文章:

c# - 外键问题(将实体种子添加到 'Comment' 并指定外键值 {'DocumentId' }。)EF

c# - 使用 QueryString 跟踪 Turn

linux - 在 64 位 Linux 上运行 32 位应用程序的性能如何?

linux - 在不同的 Linux 发行版上运行程序

c# - 是否可以从 asp.net 验证器转移到 jQuery 验证器

c# - 在自定义 InvalidModelStateResponseFactory asp.net core 2.2 中读取请求正文

.net - 只有我吗?与 XPath 相比,我发现 LINQ to XML 有点麻烦

.net - Request ("key") 和 Request.Params ("key") 之间有什么区别吗?

c# - 无法将一个通用列表转换为另一个

c - 32 位与 64 位架构上的内存访问