※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

いろいろ




//------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+
/// <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);
    ;
}
 ちなみにC++では、こんな書き方を見つけました。
 偏見プログラマの「語り」!様より転載です m(_ _)m
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行で済みます。