如何获得程序集dll的处理器体系结构?

3gg*_*ppy 5 .net c# architecture dll processor

我可以通过以编程方式在c#中加载dll来获得处理器体系结构吗?

有没有可以做到这一点的课程?

我需要弄脏dll是x86,x64,MSIL等.

Mik*_*sen 9

假设您只查看.net程序集,可以使用CorFlags.exe查看图像的标题.

此博客文章解释了确定如何阅读结果的用法.摘抄:

用法:Corflags.exe程序集[选项]

如果未指定任何选项,则显示给定图像的标志.

...

以下是标题的每个组成部分的含义:

版本:包含用于构建二进制文件的.NET Redist版本.

CLR标题:2.0表示.Net 1.0或.Net 1.1(Everett)图像,而2.5表示.Net 2.0(Whidbey)图像.

CorFlags:这是由OR'g特定标志计算的,用于指示图像是否为ILONLY,其位数等,并由加载程序使用.ILONLY:允许托管图像包含本机代码.要成为"anycpu",图像只能包含IL.

32BIT:即使你的图像只包含IL,它仍然可能具有平台依赖性,32BIT标志用于区分"x86"图像和"anycpu"图像.64位图像的区别在于它们具有PE类型PE32 +.
最有趣的方面是PE和标头的32BIT标志.这些组合以指定装配类型.以下是它们的外观:

  • anycpu:PE = PE32和32BIT = 0
  • x86:PE = PE32和32BIT = 1
  • 64位:PE = PE32 +和32BIT = 0


Han*_*ant 1

试图通过加载程序集来找出答案是先有鸡还是先有蛋的命题。如果您没有收到 BadImageFormatException,那么拱门是合适的,您不再关心它是什么。如果确实出现异常,那么程序的配置就是错误的。在代码中你对此无能为力。