#author("2024-06-09T17:01:18+00:00","default:iseki","iseki")
#author("2024-06-09T17:01:53+00:00","default:iseki","iseki")
* Visual Studio [#df9b1b0b]
** OverView
- MS用IDE

**** Community [#f0ff328e]
- MFCが使える(やったね!).学生,オープンソース開発者は無料で使える.
- https://visualstudio.microsoft.com/ja/vs/community/


**** Professional [#v4d17914]

**** Enterprise [#l328bf5d]


** Install [#s8fbc461]
- Installer Download: https://visualstudio.microsoft.com/ja/downloads/


*** Offline Install [#xb915e10]
- ダウンロードしたオンライン用インストーラを以下のオプション付きで実行すると,指定したフォルダにオフライン用ファイルがダウンロードされる.
- フォルダ内の vs_setup.exe を起動する.
 vs_community__1827792596.1528508494.exe --layout e:\vsc2019_offline --lang ja-JP --all
- フォルダのサイズは 2019/8/23 のバージョンで 約25G


** Setting
**** 背景色
- ツール - オプション - 環境 - 全般
**** コードフォーマット
- ツール - オプション - テキストエディタ - C/C++ - コードスタイル - 書式設定 - 全般
** Devel
*** Dll
- プロジェクトのプロパティ
<pre>
   C/C++
      全般
          追加のインクルード ディレクトリ
      プリプロセッサ
          プリプロセッサの定義    ..._EXPORTS
   リンカ
      全般
          追加のライブラリ ディレクトリ
      入力
          追加の依存ファイル      .....lib
          モジュール定義ファイル  .....def
</pre>

- ライブラリ依存関係 ([[CTView>CTView (J)]])
<pre>
              → BREP  -------------------↓
Basic → Math → Graph → CT -------------↓                   Windows非依存
               → BREP  -------------------↓
 Basic → Math → Graph → CT -------------↓                   Windows非依存
--------------------------------------------------------------------------------
                       → WinBaseLib → MFCLib → アプリ       Windowsに依存
                              → DLGBox --↑ 
                        → WinBaseLib → MFCLib → アプリ       Windowsに依存
                               → DLGBox --↑ 
</pre>
** Error or Warning [#n76ee6d4]
*** 文字コード [#y924e06e]

**** [[unicode, utf-8>Unicode]] を使用する場合 [#d2476de1]
- 構成プロパティ - 詳細 - 文字コード - Unicode 文字セットを使用する
- 構成プロパティ - C/C++ - すぺてのオプション - その他のオプション - /utf-8 を追加
- リソースファイルの #pragma code_page(932) を #pragma code_page(65001) に変更.

- [[Unicode で ぐだぐだプログラミング>/Unicode/VC++]]
*** MFC [#i59326a0]

**** DXGI_JPEG_QUANTIZATION_TABLE が定義されていない [#b9a313c5]
- VS2012 からバージョンアップすると VS2017以降で発生 (VS2015では不明).
- DXGI_JPEG_AC_HUFFMAN_TABLE, DXGI_JPEG_DC_HUFFMAN_TABLE も同様
- wincodec.h で使用されている.呼んだ覚えばない.どこで呼ばれた! 
- 多分 stdafx.h 以降で自動的に呼ばれている

- 解決編
-- 規定値から継承した DXのインクルードファイルの読み込み順がおかしいかった.
-- プロジェクトのプロパティかから C/C++ の全般を選び,追加のインクルードディレクトリで「親またはプロジェクトの規定値から継承」のチェックを外す.
-- プロジェクトの規定値 の変更の仕方が分からん!

**** Link 時の /LTCG [#cf43aec4]
- Release 時に /LTCG を付ける.(ライブラリ -> 全般 -> リンク時のコード生成)

*** GetOpenFileName(), CFileDialog()
- 64bit で動いていたものを x86(32bit)でコンパイルしたら動かなくなった(エラーをリターン).
- CommDlgExtendedError() で調べたら 0x0002 (CDERR_INITIALIZATION: メモリエラー)をリターン
- 結局 リンカ時のスタックサイズ(大きめに取っていた)をデフォルトに戻したら動いた

*** MS2080 [#xcc40ecd]
- Visual Studio のバージョンとプラットフォームツールセットのバージョンが合わない
- 複数の Visual Studio のバージョンをインストールすると発生する.


**** 2012 [#pba501da]
- ソリューションエクスプローラーでビルド対象を選択
- プロジェクト
-- プロパティ
-- 構成プロパティ
-- プラットフォームツールで正しいバージョンを選択

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 ページ一覧 検索 最終更新   ヘルプ   最終更新のRSS