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

标签 c++ .net dll

到目前为止,我已经能够使用以下代码加载 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
        }

关于c++ - 如何以编程方式检测 DLL 在 .NET 中是编译为 32 位还是 64 位?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36858875/

相关文章:

c# - 为什么这个程序会挂起?

c++ - 使用 Visual Studio 通过 DLL 边界传递 std::string 时出现问题

c++ - pqxx::result::tuple 尚未声明(C++ 的 PostgreSQL 库)

c++ - 在不复制数据的情况下将 OpenCV Mat 发送到 MATLAB 工作区的方法?

c# - 如何通过C#控制配电盘的电源?

c# - C# 设置中的制表符

c++ - 如果在 WinXP 上的调试版本中使用 boost (C++) 库,则无法执行程序

c++ - 检测 CRT 初始化是否在注入(inject)进程中完成

c++ - 当流关闭时,boost::asio::async_read 的 ReadHandler 应该返回什么 error_code?

java - 在 C++ 中的 Java native (JNI) 方法中,在 jdoubleArray 和 vector<double> 之间进行转换