| VC++6.0 から .NET や VC++2005以降への移行に関するメモ |
|
||||||||
| プロジェクトの移行 | ||||||||
| VC++ 6.0プロジェクト内の dsp 又は dswファイルを開けば、自動的に変換してくれる。 変換後は sln (ソリューション)を開く。 変換前に、不要な ncb、 opt、 PLGファイルは削除しておく。 変換後のVC++6.0のプロジェクト dsp は、消さず残しておいた方が良い。 |
||||||||
| プロジェクトにソースファイルの追加 | ||||||||
| 「プロジェクト(P)」→「既存項目の追加(G)」で「既存項目の追加」ダイアログを開き | ||||||||
| 追加するソースファイルを選択し、「追加」ボタンをクリックする。 | ||||||||
![]() |
||||||||
| プロジェクトのソースファイルの削除 | ||||||||
| 「表示(V)」→「ソリューションエクスプローラ(P)」で「ソリューションエクスプローラ」を開き | ||||||||
| 対象ファイルを右クリックして、「プロジェクトから削除」をクリックする。 | ||||||||
| プロジェクトにライブラリの追加 | ||||||||
| @「プロジェクト(P)」→「〜のプロパティ(P)」で「プロパティ ページ」を開き | ||||||||
| 「構成プロパティ」→「リンカ」→「入力」で、「追加の依存ファイル」に ライブラリ名を入力する。 | ||||||||
![]() |
||||||||
| A上記の方法だと、プロジェクト毎に設定が必要なので、ソース内に記述した方が便利 | ||||||||
#pragma comment(lib, "ライブラリファイル名") 例)-> #pragma comment(lib, "UNLHA32.LIB") |
||||||||
| warning C4996: strcoy等のバッファ・オーバーラン対策の関数 | ||||||||
| @大量の警告メッセージ対策 warningを出さないようにするには、 #define _CRT_SECURE_NO_DEPRECATE 1 を定義する。 又は、 #pragma warning(disable: 4996) を定義する。 |
||||||||
| A個別に置き換える | ||||||||
| ルーチンのマップ(CRT) を参考にして、修正する | ||||||||
| 注)修正すると、当然 VC++6等でエラーになり相互利用できないので、上記@の方が良さそう。 | ||||||||
| 例) itoa,atoi等の非標準のCライブラリ関数 ( The POSIX name for this item is deprecated 廃止予定 ) | ||||||||
| 前にアンダースコアをつける。 _itoa _atoi | ||||||||
| warning C4995: ○○○は将来のリリースではサポートされなくなる可能性があります。 | ||||||||
| こう言われても、修正には多大な労力が必要なので、warningを出さないようにする。 | ||||||||
| #pragma warning(disable: 4995) を定義する。 | ||||||||
| DAOのDFX変換のNULL対策 | ||||||||
//{{AFX_FIELD_MAP(CXXXSet)
pFX->SetFieldType(CDaoFieldExchange::outputColumn);
DFX_Single (pFX, _T("重量" ), m_nJyuryo );
DFX_Short (pFX, _T("数量" ), m_nSuryo );
//}}AFX_FIELD_MAP |
||||||||
| NULLの場合、ゼロにならない。 フィールドのNULLを判断するようにする。(VT_NULL) | ||||||||
| forループでの変数スコープ | ||||||||
|
||||||||
| または 「プロジェクト」の「プロパティ」の「C/C++」の「言語」の 「forループスコープの強制準拠」を「いいえ(/Zc:forScope-)」 に設定 |
||||||||
| ユーザー定義メッセージの関数プロトタイプ | ||||||||
| void が無くなり、LRESULTに変更 値を返すようにする。 | ||||||||
| afx_msg void OnMyMessage(WPARAM wParam, LPARAM lParam); → afx_msg LRESULT OnMyMessage(WPARAM wParam, LPARAM lParam); |
||||||||
| CreateProcessの第2引数がPCTSTR(const文字列)ではなくPTSTR(非const文字列) | ||||||||
| 第2引数に読み取り専用領域を渡すとアクセス違反 | ||||||||
| CreateProcess(NULL, "C:\\sample.bat", NULL, NULL, NULL, NULL, NULL, NULL, &si, &pi); TCHAR szCmd[] = TEXT("C:\\sample.bat"); CreateProcess(NULL, szCmd, NULL, NULL, NULL, NULL, NULL, NULL, &si, &pi); |
||||||||
| warning C4996: 'CWinApp::SetDialogBkColor': CWinApp::SetDialogBkColor is no longer supported. | ||||||||
| SetDialogBkColor は対応しなくなったので、必要ならば、ダイアログ毎に個別で設定する。 |
||||||||
| BOOL CTheApp::InitInstance() { SetDialogBkColor(); // ダイアログ背景色をグレーに設定します。 LoadStdProfileSettings(); // 標準 INI ファイルをロードします。(MRU を含む) ............ ............. return TRUE; } |
||||||||
| @ダイアログのOnPaint()で設定 のサンプル3 | ||||||||
| AダイアログでOnCtlColor のハンドリングし、背景ブラシを渡す のサンプル1・2 | ||||||||
| XPスタイルの外観 | ||||||||
| 「プロジェクト(P)」→「〜のプロパティ(P)」で「プロパティ ページ」を開き | ||||||||
| プロッジェクトの「マニフェストツール」で 「追加のマニフェストファイル」で指定する。 | ||||||||
| 例) $(ProjectDir)additional.manifest を作成して追加 | ||||||||
![]() |
||||||||
| Vistaから、パスワード文字が * から ● に変更 | ||||||||
|
||||||||
| もし、スクロール指定していなければ、半分しか入力されないので、 ES_AUTOHSCROLL を指定するか、 | ||||||||
| パスワード文字を従来どおりの* にする。 → パスワード文字の変更 | ||||||||
| XPスタイルで、Vistaからカレンダーのデザインが変更 | ||||||||
|
||||||||
| 新カレンダーのサイズに合わせてデザインしなおし・・・ | ||||||||
| 実行環境へ配布するDLL等 (VC2005以降は Side-By-Side実装になった Win SxS ) | ||||||||
| 単純にDLLも配布するわけにもいかず、やっかいです。(Static Linkにするとプログラムサイズが大きすぎ) |
||||||||
| VC2008 再配布するDLL Microsoft Visual C++ 2008 再頒布可能パッケージ (x86) | ||||||||
| VC2005 (VC++.NET2005)再配布するDLL Microsoft Visual C++ 2005 SP1 再頒布可能パッケージ (x86) |
| .................................................................................................................................................................................................................................................................................... |
※Visual Studio 2008起動時間を早める方法 (ニュースチャンネルは不要)
| スタート・ページを非表示にする | ||
| 「ツール(P)」→「オプション(O)」で「オプション」ダイアログを開き | ||
| 「環境」→「スタートアップ」を選択し、「スタートページの表示」を変更する。 | ||
![]() |
||
「スタートページの表示」を「空の環境の表示」に設定 |
||
![]() |
||
| VS2008起動時にスプラッシュを表示させない | ||
| 「ツール(T)」→「オプションロパティ(P)」で「プロパティ ページ」を開き | ||
![]() |
||
| .................................................................................................................................................................................................................................................................................... |
| このページの先頭へ | ![]() |
![]() |
![]() |
![]() |
![]() |
![]()
|
Copyright (C) CRIMSON Systems |