初版作成 2013?
最終更新 2024.04.01
コンソールアプリケーションの実行が終了すると、コンソールが 消えてしまう。 エラーメッセージを見るために、残したいときは F5 ではなく ctrl + F5 で実行する。 終了は、コンソールで ctrl + C
デフォルトではエラー出力ウィンドウはドッキングされているので、 切り離して右側に置いた方が見やすい。 エディタの色使いは変更して黒背景にした方が絶対によい。 私の色使いは define, void int while など 赤 コメント 黄色 文字列 水色
「プロジェクト」→「プロパティ」 「構成プロパティ」→「リンカー」→「システム」 スタックサイズの設定 10000000 (10M) デフォルトは 1M
1. ファイルの作成 「ファイル」→「新規作成」→「ファイル」→「Visual C++」 で作成し 「名前を付けて保存」 2. プロジェクトに追加 「ソースファイル で右クリック」→「追加」→「既存の項目」
空のソリューションを作る 「ツール」→「設定」→「上級者用の設定」 「表示」→「プロパティマネージャー」 Debug | Win32 Microsoft.Cpp.Win32.user あるいは Release | Win32 Microsoft.Cpp.Win32.user をダブルクリック 「共通プロパティ」→「VC++ディレクトリ」→「インクルードディレクトリ」に 追加のインクルードディレクトリを設定。 ライブラリのディレクトリは #pragma の後のライブラリ名をフルパスで書けばよい
ウィンドウ左側の領域の一番下のタブにおいて「リソースビュー」を選ぶ。
以下の場所の記述を手動で削除する必要がある。 xxxView.h イベントの記述 xxxView.cpp BEGIN_MESSAGE_MAP イベントハンドラ関数
デバイスコンテキストに対して行う。 デバイスコンテキストの原始的な使い方 void CabcView::OnDraw(CDC* pDC) { CPen myPen, *oldPen; myPen.CreatePen(PS_SOLID,2,RGB(0,0,0)); oldPen = pDC->SelectObject(&myPen); pDC->MoveTo(x1,y1); pDC->LineTo(x2,y2); pDC->SelectObject(oldPen); } コントロール変数を定義してない場合 CWnd* myPICT = GetDlgItem(IDC_PICT); CClientDC myPictDC(myPICT); m_pict というコントロール変数を定義している場合 CClientDC myPictDC(&m_pict); 上のように描きたい領域のデバイスコンテキストを取得してから myPictDC.MoveTo(x1,y1); myPictDC.LineTo(x1,y1); ピクチャボックスのクリア(コントロール変数あり) CRect myRECT; m_pict.GetClientRect(myRECT); 自分の領域を取得 myPictDC.FillSolidRect(myRECT, RGB(255,255,255)); 白で塗りつぶす
1. BITMAP オブジェクトに LoadBitmap でビットマップを読み込んでおく 2. CreateCompatibleDC で互換性のあるメモリデバイスコンテキストを作成 3. SelectObject でその DC にビットマップを描画する 4. BitBlt または StretchBlt 関数で、コピーする 直接デバイスコンテキストに Bitmap を描画することは出来ない OnDraw のように pDC が引数として来るとき CDC workDC; workDC.CeateComptibleDC(pDC); pDC->BitBlt(10,10,256,192,&workDC,0,0,SRCCOPY); pDC が来ないとき CDC *pDC; (描画) m_pict.ReleaseDC(pDC);
◆ path の設定 d:\opencv\build\vc10\bin この中に dll があるので、path が通っていないと dll をロードできない。 path の設定は Visual Studio を起動する前に行っておかなければならない。 ◆ Visual Studio としての(インクルード・ライブラリ)フォルダの設定 参照 OpenCV2 プログラミングブック p.21 ツール → 設定 → 上級者用の設定 表示 → プロパティマネージャー Debug Release どちらでもよいので Microsoft.Cpp.Win32.user をダブルクリック 共通プロパティ → VC++ディレクトリ インクルードディレクトリ d:\opencv\build\include ライブラリディレクトリ d:\opencv\build\vc10\lib ◆ 個別のプロジェクト毎の(インクルード・ライブラリ)フォルダの設定 プロジェクト → プロパティ → 構成プロパティ → C/C++ → 追加のインクルードディレクトリ VC++ ディレクトリ → ライブラリディレクトリ ◆ ライブラリ名の指定 #include <opencv2/opencv.hpp> #pragma comment(lib,"opencv_core243d.lib") #pragma comment(lib,"opencv_imgproc243d.lib") #pragma comment(lib,"opencv_highgui243d.lib") #pragma comment(lib,"opencv_video243d.lib") #pragma comment(lib,"opencv_objdetect243d.lib") #pragma comment(lib,"opencv_legacy243d.lib") #pragma comment(lib,"opencv_calib3d243d.lib") #pragma comment(lib,"opencv_contrib243d.lib") #pragma comment(lib,"opencv_features2d243d.lib") #pragma comment(lib,"opencv_flann243d.lib") #pragma comment(lib,"opencv_haartraining_engined.lib") #pragma comment(lib,"opencv_ml243d.lib") #pragma comment(lib,"opencv_gpu243d.lib") ◆ Win32 コンソールアプリケーションを作成する 雛形では _mail() となっているが、コメントアウトして OpenCV のサンプルコードを持ってくると、main() から始まるプログラムはエラー無くコンパイルを終了する。 まずは、lkdemo を実行する。lkdemo は OpenCV\samples の中にある。
プロジェクト --- プロパティ --- 構成プロパティ --- リンカ --- 入力 --- 追加の依存ファイル: wsock32.lib
プロジェクト --- プロパティ --- 構成プロパティ --- 全般 --- 文字セット: マルチバイト
プロジェクト --- プロパティ --- 構成プロパティ --- C/C++ --- コード生成 --- ランタイムライブラリ: マルチスレッド デバッグ
Visual Studio から実行: ProjectName\ProjectName ショートカットから実行: ProjectName\Debug
#pragma warning(disable:4996)