• 追加された行はこの色です。
  • 削除された行はこの色です。
#author("2016-05-25T16:15:51+00:00","","")
[[dragon spx]]

#author("2016-05-26T13:44:54+00:00","","")
*Visual Studio 2016 Communityを使う [#q2bce5a8]
そこそこ軽い、速い、パフォーマンスアナライザーがついたプロ仕様、無料、素直、安定している、しかもついにリソースエディタが標準で使える。ありがとう''resEdit''
また会う日まで!いつものビジュアルスタジオっていうことで、かなりいい!乗り換えよう!!


***キーバインドが異なる [#kb063513]
Ctrl+Shift+Bでビルドできる。しかし、VC6ライクにF7でコンパイルしたい。
 ツール > オプション > 環境 > キーボード
&ref("./vc2015keyboard.PNG",50%);
''次の追加キーボードマップスキームを適用''で「Visual C++ 6」を選ぶ


***ビルドとコンパイルの違いってなんなの? [#f486d014]
''簡単に言うと「ビルド=コンパイル+リンク」''
厳密にはプリプロセス(前処理)と、コンパイル後のポストプロセス(後処理)なんかも含まれて総合的に実行ファイルを創りだすのがビルド。
コンパイルはビルドの中の作業の1つ。

***ソリューション(sln)とプロジェクト(vcproj,vcxproj) [#qbafd8d7]
プロジェクトの設定ファイルがvcproj、プロジェクトは1つのソリューションに複数作れるので複数のvcprojを管理しているのがsln(ソリューション)ファイル。プロジェクトが1つしかないなら、どっちを開いても同じ。

 -ソリューション.sln(グラディウスII)
 --プロジェクト1.vcproj(アーケード版)
 --プロジェクト2.vcproj(ファミコン版)
 --プロジェクト3.vcproj(PCエンジン版)

※どちらもテキストデータなので開いて編集可能
※vcprojはvisual studio 2010からvcxprojになる

***実行したいプロジェクトがアクティブにならない [#vc277151]
&ref("./vc2015change.PNG",50%);
プロジェクトを右クリックして「スタートアッププロジェクトに設定」するとデフォルトのプロジェクトが変更できる

*** filtersとか*.suoとか? [#abcd4c4d]
-suo・・・・・visual studioのタブ状況とか各種ウインドウの状態を管理。なくてもいい。
-filters・・・プロジェクトのファイルのフォルダツリーを管理。なくてもいけるがないと苦しい


***新規プロジェクトの作成でウイザードが先にすすまない?? [#ad6ce45a]
アプリケーション設定の画面から先に進めない。
&ref("./vc2015blank.PNG",50%);
なんかバグってるようです、TABキーをおして「完了」ボタンにたどりつくか、マウスで画面を上から下にドラッグすると、なんか強制的にスクロールして「完了」ボタンが見えます

***なんかWinMainが読めない、なんだこれは? [#p9e2945e]

 int APIENTRY wWinMain( _In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevInstance, _In_ LPWSTR    lpCmdLine, _In_ int nCmdShow)

あれ?こんなんだったっけ・・・?なんだ「wWinMain」って。なんで草生やしてんのよ。

 3つ目の引数 LPWSTR lpCmdLineをユニコードで受け取るという意味のwです。
 つまりワイド文字に由来します。 

なるほど、そうか、じゃあしょうがないね。

あと、なんで引数の前にinとかoutとかついてんのよ。

 これはSALと呼ばれるもので、引数の使用方法に関して使用出来る一種のコメントであり、
 C++のコード障害対策として用いられています。

ふむう、どうもこれをつけておくと宣言と動作が異なるときに検出してくれるらしい。それはいいけど他所のプログラムで動かない独自仕様をいっぱい入れてくんのやめてほしい。まあwinMainに関してはWindowsしか使わないんだけど。そうやって拡張されたObjective-Cよりはマシかもしれないが、もう普通のCではコードがワイルドすぎてダメなのか・・・。