#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] - ソリューションエクスプローラーでビルド対象を選択 - プロジェクト -- プロパティ -- 構成プロパティ -- プラットフォームツールで正しいバージョンを選択