MSVC - eiichiromomma/CVMLAB GitHub Wiki
無料配布のVisual C++ 20xx Express Edition 日本語版を使う
OpenCV関連はこちら
※ 古い
- "ツール"-"オプション"-"プロジェクトおよびソリューション"-"VC++ディレクトリ"で"ディレクトリを表示するプロジェクト"を"ライブラリファイル"として、必要なフォルダをフルパス(ドライブ名から)で指定。
- "ツール"-"オプション"-"プロジェクトおよびソリューション"-"VC++ディレクトリ"で"ディレクトリを表示するプロジェクト"を"インクルードファイル"として、必要なフォルダをフルパス(ドライブ名から)で指定。
"プロジェクト"-"プロパティ"-"構成プロパティ"-"リンカ"-"入力"-"追加の依存ファイル"に必要なライブラリファイル(*.lib)を追加する。
但し、事前にVCでのライブラリパスの追加の手順でライブラリの置いてあるフォルダを参照できるようにしておくこと。
プログラムに*.jpgのようなワイルドカードを展開させる方法
Unixではワイルドカードはシェルが勝手に展開してくれるのだが、Windowsの場合、プログラムに作業が任されている。
#include <stdio.h>
main(int argc, char** argv)
{
int i;
for(i=0;i<argc;i++){
fprintf(stderr,"%s\n",argv[i]);
}
return 0;
}
のようなプログラムを作り、を引数として実行させるとUnixでは自身のプログラム名の後に、そのフォルダ内のファイルが表示されるのに対し、Windowsではが表示されてしまう。
プロジェクトのプロパティ-構成プロパティ-リンカ-入力-追加の依存ファイルにsetargv.objを追加すれば、dirなどのWindowsの標準コマンドレベルのワイルドカード展開は行なえるようになる。
これを使うのが手っ取り早い。
- C Consultant : Contract Software Engineering : Free Sample Code : http://www.pwilson.net/ でWindows向けのが公開されているので拝借。
但しGNUライセンスなので、これを含むプログラムを公開する場合ソースコードの開示が必要になるので注意。
getopt.hとgetopt.cを切り出して使いたいプロジェクトのフォルダに保存してからプロジェクトにそれぞれを追加する。 あとは
#include "getopt.h"
として
で解説されているような使い方が出来る。
#環境を移行すると出てくるワーニングメッセージの消し方
メモリや文字列を弄る関数でのバッファ溢れの対応としてMicrosoftが策を打ち出したらしい。 毎度の独自拡張っぽいので話がややこしくなっているようだ。
vcam.cpp(1828) : warning C4996: 'strcpy' が古い形式として宣言されました。
1> C:\Program Files\Microsoft Visual Studio 8\VC\include\string.h(73) :
'strcpy' の宣言を確認してください。
1> メッセージ: 'This function or variable may be unsafe. Consider using strcpy_s instead.
To disable deprecation, use _CRT_SECURE_NO_DEPRECATE. See online help for details.'
のようなメッセージが出て本当に修正が必要なワーニングやエラーを見落す恐れがある。
コンパイルの際に_CRT_SECURE_NO_DEPRECATEを宣言すれば良い。 "プロジェクト"-"プロパティ"-"構成プロパティ"-"C/C++"-"コマンドライン"の"追加のオプション"に /D "_CRT_SECURE_NO_DEPRECATE" を記述する。