C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

■85360 / 5階層)  CPUタイプを判別する方法
□投稿者/ 魔界の仮面弁士 (1424回)-(2017/10/13(Fri) 09:43:14)
2017/10/13(Fri) 10:04:11 編集(投稿者)

No85353 (餓狼 さん) に返信
> CorFlags
> というのはどのようにして読み込めば良いのですか?

CorFlags.exe ツールを起動して、標準出力を取り出してみるのは如何でしょうか。


直接的に読み取りたいというのであれば、searchcode で検索したみたところ、
下記の C# コードが見つかりましたので、コンパイルしてから参照設定で使うか、
VB に翻訳して取り込むかしてみてください。
https://searchcode.com/codesearch/view/27987508/


なお、VB から呼び出す場合は、上記を参照設定に加えた上でこんな感じ。

Imports ApiChange.Api.Introspection
Module Module1
 Sub Main(args$())
  For Each f In args
   Console.WriteLine(f)

   Dim meta = CorFlagsReader.ReadAssemblyMetadata(f)
   If meta Is Nothing Then Continue For
   Console.WriteLine("IsPureIL={0}", meta.IsPureIL)
   Console.WriteLine("IsSigned={0}", meta.IsSigned)
   Console.WriteLine("CLR={0}.{1}", meta.MajorRuntimeVersion, meta.MinorRuntimeVersion)
   Console.WriteLine("ProcessorArchitecture={0}", meta.ProcessorArchitecture)
   Console.WriteLine()
  Next
  Console.Write("Hit Enter Key...")
  Console.ReadKey()
 End Sub
End Module


今回紹介した、CorFlagsReader サンプルには、32bit優先フラグの有無を見るための
プロパティは用意されていません。とはいえ、判定に必要なビットフラグは
No85317 で紹介済みですから、書き換えるのはそう難しく無いでしょう。


--- 追記:DLL 改修案 ---
public bool IsPreferred32bit
{
 get
 {
   return (corflags & CorFlags.F32BitsPreferred)
      == CorFlags.F32BitsPreferred;
 }
}


[Flags]
private enum CorFlags : uint
{
  F32BitsRequired = 2,
  ILOnly = 1,
  StrongNameSigned = 8,
  TrackDebugData = 0x10000,
  F32BitsPreferred = 0x20000, // ★追加
}
編集キー/

前の記事(元になった記事) 次の記事(この記事の返信)
←Re[4]: CPUタイプを判別する方法 /餓狼 返信無し
 
上記関連ツリー

CPUタイプを判別する方法 / 餓狼 (17/10/06(Fri) 10:39) #85310
Re[1]: CPUタイプを判別する方法 / Jitta (17/10/06(Fri) 11:00) #85311
  └ Re[2]: CPUタイプを判別する方法 / 餓狼 (17/10/06(Fri) 11:14) #85312
    ├ Re[3]: CPUタイプを判別する方法 / 餓狼 (17/10/06(Fri) 11:19) #85314 解決済み
    │└ Re[4]: CPUタイプを判別する方法 / 魔界の仮面弁士 (17/10/06(Fri) 12:18) #85317 解決済み
    └ Re[3]: CPUタイプを判別する方法 / Hongliang (17/10/06(Fri) 11:19) #85313
      └ Re[4]: CPUタイプを判別する方法 / 餓狼 (17/10/12(Thu) 18:14) #85353
        ├ Re[5]: CPUタイプを判別する方法 / Azulean (17/10/12(Thu) 22:58) #85356
        └ CPUタイプを判別する方法 / 魔界の仮面弁士 (17/10/13(Fri) 09:43) #85360 ←Now

上記ツリーを一括表示 / 上記ツリーをトピック表示
 
上記の記事へ返信