VC PlusPlus

提供:yonewiki

言語と開発環境へ戻る。

概要

VC++は、Microsoft社が提供する統合開発環境の名称で、VC++と表現すると主にWindowsアプリケーションをC++言語で記述し、プログラムを開発する枠組みを示すことになります。 


VC++はVisual C++が省略された表現で、C++の他の言語で記述する同じシリーズとして
Basic:Visual Basic(VB)
Java:Visual J++(VJ)
J#:Visual J#
C#:Visual C#
というものがありました。J++やJ#はMicrosoft仮想JAVAマシンでしか動作しないこともあり、あまり使われていない状況でした。これらの開発環境をまとめてVisual Studioと名付けた複数の言語の開発環境をセットにした製品もMicrosoft社は提供しています。

C#やJ#はC++やJava言語で.NetFrameworkというWindows上で稼働する仮想マシンで動作するプログラムのための言語仕様になっています。

Windowsアプリケーションの開発言語には、多種多様な言語がありまして、
C++言語にC#という言語が追加された他、
・C++マネージ拡張(2002年~2005年)
・C++/CLI(2005年以降)
と呼ばれる言語も存在しています。
2002年に登場した仮想マシン.NetFramework、
共通言語基盤(CLI:Common Language Infrastructure)の共通言語ランタイム(CLR:Common Language Runtime)の利用によって様々な言語としての形態を持ちます。
C++/CLIは他の言語でも生成される共通中間言語(CIL:Common Intermediate Language)が生成・利用できるもので、複数の言語の橋渡しも実現できるという位置づけでした。

新しく利用できるプログラムの記述形式を提供しているため、C++/CLIは言語として独立していますが、VC++の仲間みたいなものだと思っていいと思います。ちょっと偉いですかね。共通言語基盤であるCILもMicrosoftの手にかかればMSIL(MSIL:MicroSoft Intermediate Language)と呼ばれるようです。

一概にVC++と言っても現在における構造は複雑です。Microsoftのやることがほとんどなので、こういう歴史的なものも踏まえて教えてくれる場所というのは少ないです。自分で文献を探し、読み進めるしかないです。

基本的な部分だからこそ、理解しておきたいものですが、基本とはいえ、かなり複雑な背景になっているので、理解せずにプログラミングに挑戦しているうちに知らず知らずに、その枠組みに取り込まれていくことも多いのではないかと思います。

VC++は多くのWindowsプログラムを支えている技術ですので、その改良が進められるにつれ、新しい考え方が付け加えられるため、より多くの技術を利用することになります。
ソフトウェアの再利用技術COM(Component Object Model)ではソフトウェア間の通信をするため、既存の複雑な技術(画像・音声etc)の制御をするときにお世話になったり、ネットワーク接続における技術DCOM(Distributed Component Object Model)でネットワーク上に分配されたソフトウェアを通信によって利用する技術、あるいはIE上で動作するアプリActiveXであったり、各種アプリを連動させるOLE(Object Linking and Embedding)という技術もVC++で扱うことができるので、 全てを理解しようとすると膨大な情報を得なければなりませんが、難しいことでしょう。ソフトウェア開発における各種の技術を理解しておくことも、既に提供されている技術を応用するために必要となるかもしれませんが、これから作ろうとしているソフトウェアに向き合う内に少しづつ、歴史的な背景で生まれた各種の技術を知ることになるのが多いと思います。Javaがマルチプラットフォームを目指したようにMicrosoftも.NetFrameworkから各種OSに搭載可能な仮想マシンを国際標準の名のものとに作ったということからも、Microsoftの技術力は巨大です。あらゆるシーンにWindowsOSをMicrosoft OSで作られるソフトウェアの資産をより大きな力に変えていく原動力が、絶えず新しい技術を生み出していると言えます。

VC++の全てを知るには、それ相当の時間と努力が必要ですが、その全てを知らなくてもMicrosoftが与えてくれた小さな枠組みでプログラミングを楽しむというのが一般的なプログラミングスタイルになると思います。VC++の可能性は限りの無い可能性を秘めているのは確かです。少しづつ、少しづつ、歩みを進めましょう。


記事


 

関連記事

  • ライブラリの使用方法
  • [[Boost.Regex 利用方法]]

   

言語と開発環境へ戻る。