C++/CLI C++/CLR ドットネット

.NET Framework Form(フォーム)アプリケーションで windows.hをインクルードする時の注意事項
Win32APIを呼び出すわけじゃなけど windows.hの便利な構造体や定数を使いたいって時に


・stdio.h とかと違って ちゃんと stdafx.h でインクルードする必要がある模様
しかも
// TODO: プログラムに必要な追加ヘッダーをここで参照してください。
これのすぐ後最初でする必要がある
その前に 自前のヘッダーのインクルード文を書いたらエラーが出た


・たまに Formの関数と被る
 例:::System::IO::Directory::GetCurrentDirectory() と
    #define GetCurrentDirectory GetCurrentDirectoryA が被ってエラー
   とりあえず undef したけど大丈夫かね? もっとスマートな方法ないものか

                                                                                                  • -

Win32APIを呼び出す こっちは試してないけど 調べてたら出てきたからメモ(コピペ)


・user32 やらの必要なものは自前でリンクする

stdafx.h
#include
#pragma comment(lib, "user32.lib")


または
プロジェクトの プロパティ ページ の リンカ の 入力 の 追加の依存ファイルに指定

プロジェクトのプロパティ → 親またはプロジェクトの既定値から継承 のチェック


・デフォルトでusing namespaceがゴソッと入っているので一部の名前がカブる。
  (MessageBoxとか。)


・ハンドルの受け渡しがめんどくさい(動いたけど調べてないので合ってるか不明。)。


・デフォルトでUNICODEビルドになっている。