ページ 11

[VS2015] ソリューション内の他プロジェクトのファイルが未解決

Posted: 2017年2月19日(日) 18:44
by purin52002
こんばんは

質問内容は
  • ソリューション内の他プロジェクトにあるクラスを使おうとしたら未解決の外部シンボルと言われました。
    どうすればいいんでしょう?
というものです。


詳しく状況の説明をすると、
私はオセロのプログラムを組んでいました。

プログラムは大きく分けて
  • オセロの処理
  • DxLibを用いた画面描画処理
のようになりました。

ここで、プロジェクトを分割すればプログラムの管理が楽になると思いついたわけです。

プロジェクトをオセロの処理と画面描画処理に分割します。
コンソールでオセロを動くようにします。

・・・動いたー!(・∀・)

あとはこれを画面描画処理をするプロジェクトで呼び出せば万事解決です。

・・・

未解決の外部シンボル^p^

といった経緯です。

以下
オセロの処理をするプロジェクトをA、
画面描画処理をするプロジェクトをB
とします。

現在の状況は
  • 環境:VS2015
  • プロジェクトのビルド依存:BがAを参照
  • プロジェクトの文字セット:A,Bともマルチバイト
  • プロジェクトのインクルードディレクトリ:BがAのディレクトリを参照(ヘッダやらソースファイルが置いてある場所
  • プロジェクトの追加ライブラリディレクトリ:上に同じ
といった感じです。
他に載せるべきことがあれば教えてください。

リンクエラーは難しくてわかんないです・_・
どなたかお助けくださいー。

Re: [VS2015] ソリューション内の他プロジェクトのファイルが未解決

Posted: 2017年2月19日(日) 20:26
by purin52002
すみません、自己解決しました^^;

今後忘れないようにここにメモ書きさせてください。

読み込むプロジェクト:A
読み込まれるプロジェクト:B
とします。
  1. Bのプロパティを開く。
  2. [構成プロパティ]->[全般]の[構成の種類]をスタチックライブラリ(.lib)に変更する。
  3. [Debug]モードでメニューバーの[ビルド]から[コンパイル]を選択する。
  4. 成功するとソリューションのDebugフォルダにB.libができる。
  5. [Release]モードで[3]をするとReleaseフォルダにもB.libができる。
  6. Aのプロパティを開く。
  7. 左上の構成を[Debug]にする。
  8. [リンカー]->[入力]の[追加の依存ファイル]にDebugフォルダにあるB.libのパスを打ち込む。
  9. 左上の構成を[Release]にし[8]でReleaseフォルダにあるB.libのパスを打ち込む。
これでいけました^v^

どうやら文字セットも併せておいたほうがいいらしいので、
今回はAの文字セットをUnicodeからマルチバイトにしました。


お騒がせいたしました<(_ _)>