2011-10-20 24 views
1

私はC++にはあまりよく慣れていませんが、ここで私はWebから答えを見つけることができなかったエラーに直面しています。dll関数名は既存のMFC関数と同じ

私はdllから関数をインポートするサンプルコードをコンパイルしようとしています。

私はVS 2010 Professionalを使用しています。

エラーC2660:「のCDialog ::初期化」:関数は4つの引数を取りませんが

問題は、私はというエラーメッセージが表示されますです。

私は 'Initilize()'関数を見ると、実際にはCDialog ::関数ではなく、ヘッダファイルが.cppにインクルードされているdllとはまったく異なる関数であることがわかります。コンパイラはCDialog ::と誤解しています。そして、Initialize()が呼び出されている関数のクラスは実際にCDialogから継承されているので、これを参照してください。

この問題の最も単純な修正方法は何ですか?関数は任意の名前空間やクラスのメンバーでない場合には、事前

答えて

3

おかげでNamespace::Initialize()またはClass::Initialize()、または単に::Initialize()と呼ばれるように正しい関数を指定します。

+0

しかし、私が見るのは、その機能のヘッダーファイルです。私は何をすることができますか? –

+0

私はその質問を理解していません。おそらく、コンパイラが不平を言っている行を変更するだけで済みます。 – aschepler

+0

その関数の名前空間またはクラスはありません。関数宣言で見られるのは、ヘッダファイル内にあり、おそらく関数がdllから直接呼び出されたものです。 –

関連する問題