定義されてないというので定義するとエラーが増えた
ARToolKitを卒研で使用するのにプログラムをいじっててどうしてもわからないことがあったので質問します。
環境はWindows7のVisualStudio2008です。
まず、このプログラムは以前別の方が作って完成したものです。
なぜ自分が今、いじっているかというと、このプログラムを使いたいとおもったところ卒研の論文に乗せていたものしかなく、さらにいくつかの文字において定義の部分が完全になくなっていたからです。
で、定義をして、エラーを消していくと最後にどうしても消せないエラーが出たのです。
そのエラーが以下のものです。
1>f:\卒検\プログラムセット\過去の\過去の\過去の.cpp(407) : error C2065: 'windowCV' : 定義されていない識別子です。
このwindowCVを使っているのはこの部分だけです。
cvShowImage( windowCV, lineE);
調べてみるとこのwindowCVは「const char *」という型だそうで、さっそく「const char *windowCV」と定義しました。
すると次はこのようなエラーが出ました。
1>f:\卒検\プログラムセット\過去の\過去の\過去の.cpp(168) : warning C4101: 'pt2' : ローカル変数は 1 度も使われていません。
1>f:\卒検\プログラムセット\過去の\過去の\過去の.cpp(167) : warning C4101: 'pt1' : ローカル変数は 1 度も使われていません。
1>f:\卒検\プログラムセット\過去の\過去の\過去の.cpp(148) : warning C4101: 'j' : ローカル変数は 1 度も使われていません。
1>c:\program files (x86)\microsoft visual studio 9.0\vc\include\vector(220) : error C2129: 静的関数 'void keyEvent(unsigned char,int,int)' が宣言されましたが定義されていません。
1> f:\卒検\プログラムセット\過去の\過去の\過去の.cpp(48) : 'keyEvent' の宣言を確認してください。
プログラム内を検索したところ使用されていないというローカル変数は確かに宣言の部分にしかありませんでした。
一応「const char* windowCV」とも定義してみましたが結果は変わりませんでした。
この問題についてですが
cvShowImage( "Hough", color_dst );
このような一文もあるのですが不思議なことにこちらは「Hough」の定義がどこにも書かれていないにもかかわらず、これについてのエラーは一つもありませんでした。
一体何が違うのでしょう?
回答については
・この問題の解決方法
・「cvShowImage( "Hough", color_dst );」と「cvShowImage( windowCV, lineE);」の違いについて
・windowCVの定義の仕方について
・プログラム内にある問題点
を教えていただけると嬉しいです。
もちろん、それ以外のことも教えていただければ嬉しいです。
四つ目ですが、これより下には関係ありそうな部分を貼っておきます。
長いのでどこを乗せたらいいのかわからず関係あるかと思った一部のみとなってしまいますが、もしそこに原因があることがわかる方はぜひ教えてください。
必要があれば補足もいたします。
よろしくお願いします。
IplImage *src=cvCreateImage(cvSize(arImXsize, arImYsize),IPL_DEPTH_8U, 4);
memcpy(src->imageData, dataPtr, src->imageSize);
IplImage *Gray=cvCreateImage( cvGetSize (src),IPL_DEPTH_8U,1);
cvCvtColor(src, Gray, CV_RGBA2GRAY);
IplImage* dst = cvCreateImage( cvGetSize(Gray), 8, 1 );
IplImage* color_dst = cvCreateImage( cvGetSize(Gray), 8, 3);
IplImage* lineE = cvCreateImage( cvGetSize(Gray), 8, 3);
cvCanny( Gray, dst, 50, 200, 3 );
cvCvtColor( dst, color_dst, CV_GRAY2BGR );
cvCvtColor( dst, lineE, CV_GRAY2BGR);
お礼
ありがとうございます。 この回答をヒントに、ビルドパス設定において既存のライブラリ定義を全て破棄したうえで、新しい環境(違うPC、かつandoroidバージョンにあわせた)でライブラリ定義やりなおした結果、質問のエラーが無くなりました。 別なエラーはあるもののそれは本質的なコード上の問題であるので、これでじっくり詰めて行くことができます。 ありがとうございました。