_MSC_VERマクロの値 (Visual Studio 2015まで)

Windows用のC/C++プログラムを開発していると、Visual Studioのバージョンによる機能差に対処するためソースコード中でコンパイラバージョンを判断する必要が出てくる。そのときに使うのが_MSC_VERという定義済みプリプロセッサマクロ。この値を暗記すれば苦労は無いのだけれど、イマイチ覚えきれないので備忘録を作った。

なお、新しいVisual Studioが出るたびに随時追記する予定。

続きを読む “_MSC_VERマクロの値 (Visual Studio 2015まで)”

Xcode更新と”No Common Blocks”と”Suspicious Move”

Xcodeを8.0にアップデートしたところ、拙作アプリDoF Tableのプロジェクトで「推奨設定」への変更を促す警告メッセージが表示された。コンパイルオプションに関して次の2つ。

  • No Common Blocks
  • Suspicious Moves

以前は出ていなかったので一種の仕様変更点なのだろうか。それらについて少し調べてみた。

続きを読む “Xcode更新と”No Common Blocks”と”Suspicious Move””

GUI画面間のデータの受け渡しはグローバル変数で行うべきでない

ごく最近出くわして嫌な気分になった、C/C++のコードパターン例を一つ紹介します(MFCを使ったのWindows用GUIプログラムです)。

BOOL CMainWindow::AskUserAboutHoge() {
    CHogeDialog* dlg = new CHogeDialog( this );
    if( dlg->DoModal() == FALSE ) {
        delete dlg;
        return FALSE;
    }
    delete dlg;
    return TRUE;
}

このコード、オカシイですよね? 🙁

続きを読む “GUI画面間のデータの受け渡しはグローバル変数で行うべきでない”