異なるプロジェクトからダイアログを呼び出すには?

解決


NY  2007-08-31 22:22:10  No: 66144

WIN XP Pro, VS2005C++にてMFCアプリの資産を流用し開発を行っております。
異なるプロジェクトからダイアログを呼び出した時に、
LNK2019が発生し解決できなく困っております。
ご助言よろしくお願いいたします。
なにぶんMFC初心者でございまして、言葉足らずな箇所ございましたら
ご指摘いただけますと幸いです。

1.プロジェクト概要
 [helloworld](Project)
  helloStart.cpp  (ボタンを押すとrealtimedemoのダイアログが起動)
  helloStart.h

 [realtimedemo](Project)
  realtimedemodlg.cpp
  realtimedemodlg.h

2.実装概要
・ChelloStartダイログのボタンを押すとCRealtimedemoDlgをModalで起動

void ChelloStart::OnBnClickedButton2()
{
  CRealtimedemoDlg *pDlg;
  pDlg = new CRealtimedemoDlg(this);

  int nResponse = pDlg->DoModal();
  if (nResponse == IDOK){}
  else if (nResponse == IDCANCEL)
  {delete pDlg;}
}

・helloStart.hに”#include reartimedlg.h”を追記

3.エラー内容
1>helloStart.obj : error LNK2019: 未解決の外部シンボル "public: __thiscall CRealtimedemoDlg::CRealtimedemoDlg
(class CWnd *)" (??0CRealtimedemoDlg@@QAE@PAVCWnd@@@Z) が
関数 "public: void __thiscall ChelloStart::OnBnClickedButton2(void)" (?OnBnClickedButton2@ChelloStart@@QAEXXZ) 
で参照されました。
1>.\..\bin\Debug/helloworld.exe : fatal error LNK1120: 外部参照 1 が未解決です。

以上よろしくお願いいたします。


jun  2007-09-01 00:42:59  No: 66145

realtimedemo.hを#includeすることでコンパイルはできますが、
それだけだとリンクに失敗します。
リンクを成功させるには、realtimedemoプロジェクトをライブラリ化して、
それをhelloworldのビルド時にリンクしないといけないです。

プロジェクトのプロパティを探せば、全般→構成の種類で
ライブラリでビルドする設定ができます。

ライブラリのリンク設定は、プロパティのリンカ→入力→追加の依存ファイル
で可能です。


NY  2007-09-01 10:16:23  No: 66146

JUN様

諸事情あり返答遅くなりまことに失礼いたしました。
ご教授まことにありがとうございました。
LNK2019の件解決いたしました。
ご丁寧なアドバイス感謝いたします。

NY


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加