C++/CLI 必須ツール

  • 概要

    ここでは、C++/CLI でプログラムを記述・学習する上において、
    必須のツールである言語間コンバータを紹介します。

    語弊を恐れずに言えば、C++/CLIとは、C+++C#のようなものです。
    C++とC#と.NET FrameWorkの3者に精通することが、C++/CLIを習得する上での近道だと言えます。

  • 言語間 コンバータ

    • C# to C++ Converter

      この実態は「C# to C++/CLI Converter」です。

      これ1つあるだけで、学習効果やソースの記述速度が10倍以上は早くなります。

      C#のdynamic型・lambda系・linq系以外は、相当正確にC++/CLIへと変換できます。
      C++とC#の両方の知識の基礎があれば、このツールによる変換結果を踏襲しているうちに、
      どんどん自力でC++/CLIが書けるようになってきます。

      • 「array」だとエラーになるので「cli::array」になるように設定変更
        VS2015以降では、C++11のarray型とC++/CLIのarrayの名前空間上での優先順位が変化したため、
        arrayのままだと、エラーになりやすくなります。
        以下のようにな設定をして変更しておくことを強くお勧めします。

      • 「 ^」ではなく「^ 」に変更

      • C#→C++/CLIへの変換パターン

    • C++ to C# Converter

      ネイティブではない純粋なC++/CLIで記述されていれば、相当正確に変換されます。
      C++/CLIで記述していたものを一部C#に回したり、元々がC++/CLIのソースだけれど、
      サンプルとしてはC#にしたい場合など、こちらも多目的に便利です。

    • ILSpy

      すでにコンパイル済みのマネージドアセンブリDLL(.NET FrameWork系のDLL)を、
      C#やVB.netの綺麗なソース状態へと戻すツールです。
      すでに詳細が不明なコンパイル済みの.dllを、ソースへと戻して内容を確認等する際に役立ちます。
      また、ソースが公開されていないアセンブリの.NET FrameWorkのバージョンを引き上げるのにも役立ちます。

      ILSpyにより、概ね正確に逆変換が可能ですが、C#のdynamic型については、
      正確には変換が出来ません。