//------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+
/// <summary>「概要」を記述する</summary>
/// <remarks>「解説」を記述する</remarks>
/// <param name="arg">>メソッドの「引数」の説明を記述する</param>
/// <returns>メソッドの「戻り値」の説明を記述する</returns>
/// <newpara>書式設定。「概要」、「解説」、「戻り値」の記述の中に「段落」を作る</newpara>
//===<< END OF FILE >>===========================================================================
enumをループで回す
C++/CLIではこう書くのが一般的っぽいです。
enum class Fruit {
apple, orange, cherry
};
array<String^>^ a = Enum::GetNames( Fruit::typeid );
for each ( String^ s in a) {
Fruit^ f = (Fruit)Enum::Parse(Fruit::typeid, s);
;
}
enum Fruit {
apple, orange, cherry
Fruit_size, // 必ず最後尾+1になる
Fruit_null=0
};
inline Fruit& operator++( Fruit& v) {
return v = static_cast<Fruit>(static_cast<int>(v)+1);
}
for (Fruit f = Fruit_null; f< Fruit_size ; f++ ) {
;
}
DLLを作成するとき、インポートライブラリが作成されない?
__declspec(dllexport)がひとつもないと、作成されない。
配列の確保
array<int>^ intArray = gcnew array<int>(20);
マネージド
アンマネージド |
マネージド |
new |
gcnew |
* |
^ |
& |
% |
null |
nullptr |
interior_ptr<int>
pin_ptr<int> 一時的にアドレスを固定する
プラットホームSDKのインストール
オプション→プロジェクトとソリューション→Visual C++フォルダ
- Ececutableファイル C:\Prog....\Microsoft Platform SDK\Bin
- Includeファイル \include
- Libraryファイル \lib
インクルードパスを追加するには
プロジェクト→プロパティ→C/C++全般→追加のインクルードディレクトリ
※相対パスで指定しておいたほうがよい。
アンマネージコードをコンパイルするには
インラインアセンブラを使用するには
メニューの、プロジェクト→プロパティ→構成プロパティ
共通言語ランタイムサポートを、純粋MSIL共通言語サポート(/clr:pure)から
共通言語サポート(/clr)に変更する
多重インクルードの抑制
よくヘッダーファイル先頭で、
#ifndef __XXX_H
#define __XXX_H
// 中身
#endif
みたいに書きますが、Visual C++方言では、
#pragma once
の1行で済みます。
最終更新:2007年11月26日 10:13