質問: INVALID_HANDLE_VALUE){ ShowMessage("Err : デバイスのオープンに失敗"); return; } } そもそもこのエラーはなぜ出るのですか?
回答: 原因として、考えられることを二つほど。 ・AdOpen()を持っているライブラリをリンクのときに指定していない 質問の書き方が、ちょっとプログラムを知っている人のようなので、こういうミスは 無いだろうな、と想像します。本命は、こちら。 ・AdOpen() は C の関数であり、そのプロトタイプ宣言が適切にされていない 細かく分類すると、 ・提供されているインクルードファイルをインクルードしていない ・提供されているインクルードファイルが C++ で使うことを想定されて書かれていない ・そもそもプロトタイプ宣言が書いてあるインクルードファイルが無くて、自分でも宣言していない の三種類があります。 C++ は、関数のオーバーロード(引数の型や個数が違えば、同名の関数でも異なった 実装ができる)の仕組みを持っているので、いわゆる C の関数とは区別されます。 AdOpen() の引数は、(私には)想像するしかないんですが、例えば、以下のような プロトタイプ宣言が、(自分で書くかどうかは別にして)どこかに必要です。 extern "C" int AdOpen(const char*);