2

C++ (win32 プロジェクト) のプロジェクトのバックエンドであるいくつかのクラスを作成し、それに GUI を追加したいと考えました。Visual C++ は良い解決策のように見えましたが、GUI 部分を完成させた後、プレーンな C++ コードを統合できませんでした。誰かがそれについて何か経験がありますか?「未解決の外部」エラーが発生します。どうやら、最後のステップで .cpp ファイルがリンクされていません。いくつかのプロジェクト設定も変更する必要があると思いますが、誰か正確に説明できますか?

クラスを .dll にコンパイルし、それをビジュアル C++ プロジェクトにインポートすることも考えていましたが、それは何とか可能ですか、それとも 2 つのプロジェクトを一緒にコンパイルできますか?

助けてくれてありがとう、私はすでにしばらく遊んでいますが、有効な解決策が見つかりませんでした。

ゾルタン

4

4 に答える 4

0

「プロジェクトA」は「プロジェクトB」のヘッダーをインポートする必要があり、「プロジェクトB」に対してもリンクする必要があります。

于 2010-03-04T22:24:26.633 に答える
0

これらの古いクラスをC++GUIプロジェクトにどのようにインポートしていますか?ライブラリとして、またはソースファイルとして?

ソースファイルだけの場合は、ファイルをプロジェクトに追加して、新しいファイルと一緒にコンパイルできます。

于 2010-03-04T22:25:24.407 に答える
0

バックエンド コードがライブラリを生成する別のプロジェクトとして統合されている場合は、このプロジェクトへの依存関係を GUI アプリに追加する必要があります。

プロジェクトを GUI ソリューションに統合していない場合は、インクルード ディレクトリを設定し、linker->input に lib を追加し、リンカー オプションで追加のライブラリ ディレクトリを設定して、VS にそれを見つける方法を知らせる必要があります。

于 2010-04-16T02:56:33.903 に答える
0

何が起こっているのかを実際に伝えるのに十分な詳細がないことを考えると、私の頭の上には多くの可能性があります.

  • バックエンドを個別にリンクしていない場合、バックエンド部分のコードはコンパイルされません (プロジェクトの cpp ファイルは GUI プロジェクトまたは関連する依存関係の一部ではありません)。
  • バックエンド プロジェクトのライブラリがリンクされていません。プロジェクト プロパティのリンク セクションを確認してください。別々にリンクしている場合。
  • バックエンド ライブラリとフロントエンド ライブラリが異なる設定でコンパイルされているため、リンク時に問題が発生します。たとえば、標準ライブラリ、マルチスレッドまたはシングルスレッド ライブラリのデバッグとリリース。また、異なる文字列定義が一致しない場合 (特にテンプレート コードを使用した場合)、問題が発生する可能性があります。

必要に応じて、バックエンド部分を使用して dll を構築することは完全に可能です。他のもので使用されない場合は、おそらく気にせず、静的にリンクするだけですが、確かに可能です。

于 2010-09-08T03:28:14.190 に答える