C++/CLI とは

C++/CLI(Common Language Infrastructure) とは何かの説明です。

前田稔の超初心者のプログラム入門

新しいプログラム言語である C++/CLI(Common Language Infrastructure) はヨーロッパの工業標準化団体である ECMA によって標準言語として制定されました。
もちろん、標準を名乗る以上、C++/CLI が対象とする実行環境は Windows でも .NET Framework でもなく、国際規格である「ISO/IEC 23271:2005, Common Language Infrastructure(CLI)」です。
従って Windows 以外の環境(UNIX, Linux, etc)でも動作することが期待できます。
MS-DOS 時代の C言語や C++言語や Windows Program や Maneged Mode から DirectX まで同じ環境で動作するようになります。
CLI で作成される実行プログラム(*.exe)のコードは native code では無く、Java のような中間コードです。
このコードを実行するには、中間コードからネイティブコードに変換しながら実行する仕組みが必要です。
CLI の良い所は、マシンに依存しない所と、作成されるファイルのサイズが非常に小さいことです。
通常のアプリケーションでコンパイルして、ファイルサイズを比べてみて下さい。

C言語を教えていて最も困るのが「Console Mode のC言語と Windows Mode のC言語のギャップ」で、両者はとても同じC言語とは言い難いでしょう。 (^_^;)
同じギャップが Windows Program と DirectX の間にも存在します。
C++言語や Windows Program や Maneged Mode から DirectX まで同じ環境で動作すると言うことは「過去の資産が復活する」と言うことで、ソース・コード、ライブラリ、プログラマが持つ知識、経験などを再び活用する場が与えられることになります。
それらが一体となって復活しようとしているのですから、次世代のプログラムを始める大きなチャンスです。 \(^o^)/

今からプログラムを始めるなら C++/CLI Maneged Mode がお勧めですが、巷に出回っているプログラムは UnManeged のものが圧倒的に多いでしょう。
将来は全面的に Maneged Mode に切り替わるにしろ、当分は両者を使い分けることになるのでしょうか。 (^_^;)
C#は C++/CLI の後継言語ですが、Maneged Mode で互換性があり、C#のページも合わせて参照して下さい。
Maneged Mode に切り替わる前に携帯やスマホに対応した Store App が登場しました。
言語仕様も今までとは異なり、1から学ばなければならないようです。

CLI で思い出すのが GUI 以前に使われていた MS-DOS 時代の Command Line Interface です。
最初に command line interface でコンパイルできる環境を設定して C++/CLI のプログラムをテストしてみましょう。 (^_^;)
私のように古い人間には専用のフォルダーに訳の解らない沢山のファイルが作成されるよりも、一本のソースファイルだけでプログラムが完成して、 コマンドをたたいてコンパイル&実行する方が性に合っているかも知れません。 (^_^;)
MS-DOS の時代には、コンピュータを操作するにはコマンドの習得が必須だったのですが、知らない方のために必要な物を説明しましょう。 (^_^;)
また UNIX の経験がある方もおられると思うので DOS と対比して説明します。
command line interface では、英大文字と英小文字の区別はありません。

これだけは知っておいてほしい DOS コマンド

MS-DOS UNIX 説明
DIR *.* LS *.* ディレクトリの一覧を表示(*.* は省略可能)
DIR *.CPP LS *.CPP .CPP のファイル一覧を表示
CD C:\TMP CD C:\TMP カレントディレクトリの変更
CD .. CD .. 親のディレクトリに移動
CLS CLEAR 画面を消去します。
TYPE EX1.CPP CAT EX1.CPP ファイルを画面に表示
DEL EX1.EXE RM EX1.EXE ファイルを削除
COPY EX1.CPP EX2.CPPCP EX1.CPP EX2.CPPEX1.CPP を EX2.CPP にコピー
REN EX1.CPP EX9.CPP MV EX1.CPP EX9.CPPEX1.CPP の名前を EX9.CPP に変更
プログラム.EXE プログラム.EXE プログラムの実行(拡張子は省略可能)
BATファイル.BAT BATファイル.BAT BATファイルの実行(拡張子は省略可能)
EXIT EXIT コマンド インタプリタの終了

DOS & UNIX コマンドの対応表

MS-DOS UNIX 機能
cd cd 現在のディレクトリを表示または変更します。
chdir cd 現在のディレクトリを表示または変更します。
cls clear 画面を消去します。
comp diff 2 個のファイルまたはファイルの集合の内容を比較します。
copy cp 1 個以上のファイルを別の場所にコピーします。
date date 日付を表示または変更します。
del rm 1 個以上のファイルを削除します。
dir ls ディレクトリ中のファイルやサブディレクトリの一覧を表示します。
doskeyalias コマンドラインの編集、 コマンドの再呼び出し、マクロの作成をします。
echo echo メッセージの表示、コマンド エコーのオン、オフの指定をします。
erase rm 1 個以上のファイルを削除します。
exit exit プログラム (コマンド インタプリタ) を終了します。
fc diff 2 個のファイルまたはファイルの集合の内容を比較して、それらの違いを表示します。
find grep ファイルの中からテキスト文字列を検索します。
findstrgrep ファイルの中から文字列を検索します。
md mkdir ディレクトリを作成します。
mkdir mkdir ディレクトリを作成します。
more more 出力を一度に 1 画面ずつ表示します。
move mv 1 個以上のファイルをディレクトリから別のディレクトリに移動します。
print lp テキスト ファイルを印刷します。
rd rmdir ディレクトリを削除します。
ren mv ファイルの名前を変更します。
renamemv ファイルの名前を変更します。
rmdir rmdir ディレクトリを削除します。
time time システム時刻を表示または変更します。

Windows の Command Prompt では以下の機能が使えます

  1. 一度入力したコマンドはシステムが記憶しています。
  2. 記憶しているコマンドは↓↑でコマンドラインに表示されます。
  3. ファイル名やディレクトリ名は「先頭文字+TAB」で名前が補完されます。
  4. Command Prompt の画面に出力される実行結果をリダイレクト機能を使って、ファイルに書き出すことが出来ます。
    text.exe の実行結果を w.txt にリダイレクトする例です。
    C:\DATA\CLI>text.exe > w.txt


Command Prompt の画面に表示中のテキスト(実行結果)をクリップボードにコピーする方法です

  1. コンソール画面タイトルバーの左上アイコンをクリックします。
    または Command Prompt の画面で右クリックします。
  2. [編集][全てを選択]を選びます。
    または[編集][範囲設定]を選び、コピーする範囲を左ボタンでドラッグします。

  3. 右クリックでクリップボードにコピーされます。
  4. TEXT EDITOR などでクリップボードから貼り付けます。

超初心者のプログラム入門(C/C++)