2012-03-06 77 views
0

私は別のプロジェクトのファイルを含むプロジェクトを持っています。私はリンクエラーを取得しています...C++リンクエラーが未解決の外部シンボル

"未解決の外部シンボル "パブリック:_ CDECLクラスA ::クラスA(無効" (??()クラスA @@ QEAAする@ XZ)関数で参照" クラスクラスA * _cdecl 関数B(char型のconst *)」(?関数B @@ YAPEAVClassA @@ PEBD @ Z)...

とエラーIは、コンストラクタ、後の同じタイプの他の125のエラー(私が使用しているクラスのすべての関数がリンクエラーの1つに記載されています)
2番目のプロジェクトのファイルを含むパス私のプロパティシートに含まれています。そのプロジェクトは、それ自体で、うまく構築されます。
私のソリューションにそのプロジェクトを追加しようとしましたが、それを依存関係として追加しようとしました。助け無し。私はそれがプロジェクトで作成したdllを追加しようとしました - リンカ - 入力。助け無し。
構成プロパティでは、ランタイムライブラリは/ MTdに設定されています。
私はインクルードの前にextern "C"を追加しようとしました。助け無し。
私はDebugまたはRelease、x64またはWin32でビルドしようとしました。私はRelease x64を好むが、何かを取る。
あなたは私を助けてくれますか - 私は何が間違っているのか、この問題を解決するためにどこを見ているのか教えてください。どうもありがとうございました。

+0

私はどのプロジェクトにもテンプレートがありません。 – Thalia

+0

Visual Studioヘルプを適切なエラー番号でチェックアウトすることができます。 –

答えて

0

Link-Inputの依存関係が、プロパティシートに依存関係を持つことが明示的に指定されていないという事実によって削除されていることがわかりました。プロパティシートを変更した後、私は最終的にdllを作成することができました。

0

あなたが依存しているプロジェクトをビルドすると、libとdllの両方が生成されるはずです。そのlibをプロジェクトにリンクする必要があります。あなたのプロジェクトでlibをリンクする方法のスクリーンショットについては、thisスレッドを参照してください。

+0

私はそれを試みました - 私は私の質問の第3段落にその試みを挙げました。それは何の違いもありませんでした。私はまだ同じエラーが発生していました。 – Thalia

+0

@ user1217150あなたはlibではなくdllをリンクしようとしました。 – rob05c

+0

@ user1217150問題の名前はmangling/calling conventionsです。名前のマングリングは 'cdecl'の問題ではないはずです...ヘッダ宣言と関数のcpp定義の両方が' _cdecl'を使っていることを確認しましたか? '_cdecl'をすべて削除し、ライブラリプロジェクトを再コンパイルしてみましょう。 – rob05c

関連する問題