Visual Studio 2013 ちょっとしたメモ(C++)

個人的な忘備録

C++&WindowsSDK の時、初期状態ではXPでは動作不可なexeがビルドされる問題(Vista以上では動作する)

プロジェクトのプロパティ>構成プロパティ>全般 を選び、その中の「プラットフォーム ツールセット」を
「Visual Studio 2013 (v120)」から「Visual Studio 2013 – Windows XP (v120_xp)」に変える
こうすると普通はXPでも起動可能なexeになる
これでもダメな時は、構成プロパティ>リンカー>システムのサブシステムを参照
ここが空欄だと、XPで動かないらしい。Windowsを選択する
プロジェクト作成の際に、空のプロジェクトだと空欄になってるらしい。Win32プロジェクトを選択してるとWindowsが最初から入ってる

ビルドしたexeをVisualStudioがないPCで実行した時、「msvcp120.dllが必要」と言われ実行できない。

ユーザーにdllをインストールしてもらう手間を省くための設定(静的リンクにする)
プロジェクトのプロパティを開き、「構成プロパティ」-「C/C++」-「コード生成」を選択して、 右側の「ランタイムライブラリ」を
「マルチスレッド DLL (/MD)」から「マルチスレッド (/MT)」に、もしくは
「マルチスレッド デバッグDLL (/MDd)」から「マルチスレッド デバッグ (/MTd)」に変える。
これでビルドすると、msvcp120.dllがなくても起動できるようになる
ただし、exeのサイズは大きくなる

プロジェクト名の変更方法(フォルダ名等も変える方法)

VisualStudioからプロジェクト名を変更しても、プロジェクトファイル名やフォルダ名はそのまま
変えたいなら手動で変える必要があるのでちょっとめんどくさい

  1. VisualStudioソリューションエクスプローラーにて
    ソリューションエクスプローラーからプロジェクト名を変更
    (必要なら)ソースコードのファイル名を変更
    (必要なら)ヘッダファイル名を変更→ソースコードのインクルードも全部書き直し
  2. プロジェクトフォルダroot→プロジェクト名のフォルダに移動する
    「.exe.manifest」拡張子のマニフェストファイル名を変更後のプロジェクト名に合わせる(大文字小文字は区別しないらしい)
    「.vcxproj」「.vcxproj.filters」「.vcxproj.user」の拡張子のファイル名をすべて新しいプロジェクト名に変更
  3. 一つ上のフォルダ(プロジェクトフォルダroot)に戻る
    「.sln」ファイルをメモ帳等で開き、4行目あたりの
    Project(“{英数字の羅列}”) = “旧プロジェクト名”, ”旧プロジェクト名\旧プロジェクト名.vcxproj”
    を新プロジェクト名に書き直す(3箇所)
    「.sln」ファイルのファイル名を新プロジェクト名に変更
  4. フォルダ名の変更
    プロジェクトフォルダ名を、新プロジェクト名に
    その一つ下の旧プロジェクト名のフォルダも、新プロジェクト名に変更
  5. 要らないもの
    旧プロジェクト名の「.sdf」「.suo」ファイルは消しても問題ない

Leave a Reply

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です