designed by www.qrone.org
January
2009
Su Mo Tu We Th Fr Sa
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
INFOMATION
- 自己紹介
- マイミク申請はお気軽に:-)
- いまいち使い方がわかりません
- 気になるURLをクリップ
- Awstats を使っています
RECENT ENTRIES
CATEGORIES
MONTHLY ARCHIVES
HATENA BOOKMARK
BLOG PET
LICENCE
CONTACT
shin at windy dot ac
2003年11月21日
その存在意義に疑問を抱きながらmanaged c++を弄る このエントリーを含むはてなブックマーク

卒研で動画像解析なシステムを書く。その開発環境をどうしようかと考えた。
先ず、ラスタ画像を扱うローレベルな処理が入るので、速いコード(よりマシンのネイティブコードに近いコード)を吐けなくてはならない。そこでC++を使うことが決定。環境としては、もっともマルチメディア対応が優れており、ライブラリが充実しているということで、Windowsを使おう。と、ここまではすんなり決まった。
ところで、C++はいちおう高級言語に位置づけられるくせに、実際的な処理が言語自体にほとんど用意されていない。高レベルな処理はすべて外部ライブラリとして用意する仕組みになっている。当然、細々とした処理をいちいち自前で書きたくないし、GUIをWindowsAPIで書くのも面倒でだるいので、ライブラリを使おうということになる。
ここでスタンダードな選択肢として登場するのはMFCなんだが、僕はMFCがあまり好きくない。そこで、前々からきちんと勉強してみようと思っていた.NET Frameworkを使うことにした。GUIその他を.NET Framework+C#で書いて、そこからC++で書かれたローレベルなコードを呼び出すようにしよう。そうだそうだそうしよう。

で。
C#からC++なコードを呼び出す手段としては、次のようなものがある。
 1. DLL(Dynamic Link Library)をつくる
 2. COM/ATLをつかう
しかし、関数ベースなDLLはオブジェクト指向化された.NETの世界観にそぐわないし、COM/ATLはこれから.NETに置き換えられていくレガシーな技術である。こいつらを使うのはいやーんな感じだ。そこでもう一つの選択肢が登場する。
 3. managed c++を使う
なんと、managed c++を中継役として経由することで、C#からC++のコードをシームレスに呼び出すことができるんである。
managed c++はそれ自体マイナーな存在で、プログラムを組むひとでも、多くは名前すら聞いたことがないんじゃないかとおもう。そこで、次回は、実際にmanage c++を使って、(unmanagedな)C++で書かれたコードを.NETな環境に移植するのを実際にやってみよう。

トラックバック URL :
名前 :

URL :

コメント :

今日の井原. Since 2003.11.12 by Ihara
614 Entries - 0 Comments