如何以编程方式检测 DLL 是在 .NET 中编译为 32 位还是 64 位

How can I detect, programmatically, whether a DLL is compiled 32bit or 64bit in .NET?

本文关键字:编译 NET 编程 方式 检测 是在 DLL      更新时间:2023-10-16

到目前为止,我已经能够使用以下代码加载dll:

Assembly^ assembly = Assembly::LoadFrom(pathDll);

但我不知道如何检测它是 32 位还是 64 位。

我想

我已经找到了答案。当然,首先您必须通过以下代码行获取与 dll 关联的程序集:

Assembly^ assembly = Assembly::LoadFrom(pathDll);

然后,您可以通过以下代码获取有关平台的信息:

ProcessorArchitecture processor_architecture = assembly->GetName()->ProcessorArchitecture;
        if (ProcessorArchitecture::Amd64 == processor_architecture)
        {
            // 64bits
        }
        if (ProcessorArchitecture::X86 == processor_architecture)
        {
            //32 bits
        }