Visual Windows for BC++ のサンプルプログラムがエラーになる
Visual Windows for BC++ をインストールした直後に、新しいプロジェクトをwindows型でつくり、サンプルプログラムをビルドしたところ、うまく実行ファイルができ、正常に動作しました。
次に、OpenCVを
http://nautilus.cs.miyazaki-u.ac.jp/~yoshi/pukiwiki/index.php
を参考にダウンロードして、
インクルードファイルの検索パスに3つ: C:\Program Files\OpenCV\cv\include、C:\Program Files\OpenCV\cxcore\include、C:\Program Files\OpenCV\otherlibs\highgui
ライブラリファイルの検索パスに1つ:C:\Program Files\OpenCV\lib
を追加しました。
OpenCVのサンプルプログラムをビルドしようとしたのですがエラーになり先に進みません。それどころか、インストール直後にビルドできたサンプルプログラムもエラーが出るようになってしまいました。
エラーが発生したため、brc32.exe を終了します。
となります。
コンパイルも、以下の警告が出るようになってしまいました。
私の設定が悪いのでしょうか、それとも、Visual Windows for BC++では、OpenCVは扱えない
ということでしょうか?
よろしくお願いします。
Visual Windows for BC++, Copyright (c) 2003-2007 M. Yasue: proj1.exe
ビルド実行中.....
Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
..\hello.cpp:
警告 W8060 ..\hello.cpp 30: おそらく不正な代入(関数 __stdcall WinMain(HINSTANCE__ *,HINSTANCE__ *,char *,int) )
警告 W8057 ..\hello.cpp 41: パラメータ 'hPrevInstance' は一度も使用されない(関数 __stdcall WinMain(HINSTANCE__ *,HINSTANCE__ *,char *,int) )
警告 W8057 ..\hello.cpp 41: パラメータ 'lpCmdLine' は一度も使用されない(関数 __stdcall WinMain(HINSTANCE__ *,HINSTANCE__ *,char *,int) )
警告 W8057 ..\hello.cpp 95: パラメータ 'message' は一度も使用されない(関数 __stdcall OnPaint(HWND__ *,unsigned int,unsigned int,long) )
警告 W8057 ..\hello.cpp 95: パラメータ 'wParam' は一度も使用されない(関数 __stdcall OnPaint(HWND__ *,unsigned int,unsigned int,long) )
警告 W8004 ..\hello.cpp 130: 'wmEvent' に代入した値は使われていない(関数 __stdcall WndProc(HWND__ *,unsigned int,unsigned int,long) )
警告 W8057 ..\hello.cpp 183: パラメータ 'lParam' は一度も使用されない(関数 __stdcall About(HWND__ *,unsigned int,unsigned int,long) )
Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland
リソースファイルコンパイル・リンク実行中.....
Borland Resource Compiler Version 5.40
Copyright (c) 1990, 1999 Inprise Corporation. All rights reserved.
終了.....
お礼
こんにちは > 「構造体の境界線が奇数アドレスになる」 という警告が出たとおっしゃいました。 「構造体の境界線が奇数アドレスになるから、パディングして 偶数に揃えた。」 と言う事を言いたかったのです。すなわち次の警告の内容です。 「構造体のメンバ間に境界調整の空き領域を生成しました。」 言葉足らずだったこも知れませんが、此処に投稿してくれる 方には分かってくれると思っていたのですが。 以前にHC3048のアセンブラで、データを変更したため奇数バイト になったら、その後に書かれている命令が暴走しました。 マシン語が奇数番地から始まっていたからです。アセンブラも警告してくれないし、CPUも「ジャンプ先アドレスが奇数になっている」 と言うような事を知らせてくれる割り込みが用意されている訳でも 有りません。 プログラマが注意して境界管理をしなくてはいけません。 16ビット単位のデータの読み書きに対しては確認していま せんが、奇数アドレスですと同じようなエラーになるでしょう。 そんな訳で、コンパイラが境界管理をする前に自分で パディングして境界調整をするべきだと書いたのです。 色々と回答して下さるのは嬉しいのですが、脇道に深く入り 過ぎました。 当初の質問も皆様の温かい回答により、解決しました。 皆様、有り難う御座いました。 このパディングの話は、この辺で終わりにしませんか。