2つのプロジェクトで解決策があります。 最初のプロジェクトでは、Frameといくつかのコントロールが2番目のCForcesEditorDialog:CDialogにあります。 私はそれらを比較したいと思います。2つのプロジェクトのソリューションはコンパイルされません
MainFrame.obj:エラーLNK2019: しかし、このエラーは私がプロジェクトをコンパイル与えていない未解決の外部シンボルを "公共: __thiscall CForcesEditorDialog :: CForcesEditorDialog(クラスのCWnd *、クラスのメインフレーム*)"(?? 0CForcesEditorDialog @@ QAE @ PAVCWnd @@ PAVMainFrame @@@ Z)関数で参照 ? "保護:int型__thiscall メインフレーム:: OnCreate関数(構造体tagCREATESTRUCTA *)" (OnCreateの@メインフレーム@@ IAEHPAUtagCREATESTRUCTA @@@ Z)
class CForcesEditorDialog;
class MainFrame : public CFrameWnd
{
CForcesEditorDialog* forcesEditorDialog;
public:
MainFrame();
~MainFrame();
//virtual void CreateChildControls(void);
//afx_msg void OnMouseMove(UINT, CPoint);
protected:
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
DECLARE_MESSAGE_MAP()
};
int MainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
forcesEditorDialog = new CForcesEditorDialog(this,this);//CForcesEditorDialog(this,this);
}
class CForcesEditorDialog : public CDialog
{
//For including ForcesBar
ForcesBar* m_forcesBar;
MainFrame* pMainFrame;
public:
CForcesEditorDialog(CWnd* _pParentWnd = NULL, MainFrame* _pMainFrame = NULL); // standard constructor
}
CForcesEditorDialog::CForcesEditorDialog(CWnd* _pParentWnd, MainFrame* _pMainFrame)
: CDialog(IDD_CUR_DIALOG, _pParentWnd),
p_expander (0),
p_selectedItem(0),
m_enabled (false)
{
m_forcesBar = new ForcesBar();
pMainFrame = _pMainFrame;
}
このプロジェクトを含むことに問題があるかもしれません。私は2つのプロジェクトで決して解決策を見たことがありませんでした。あなたはそれについて何か考えましたか?
プロジェクトが依存するものをプロジェクトで参照できるように、必要なプロジェクト参照を追加しましたか? (両方のプロジェクトがお互いに依存している場合は、循環参照の問題があるかもしれません。) –
私は循環的な再定義はありません。 * .hファイルでは、ポインタのみを使用し、これらのポインタのクラスはそのようなファイルに含めません。 * .cppファイルには必要なものがすべて含まれています。 – Diego666
プロジェクトAがプロジェクトBに依存する場合、プロジェクトAからプロジェクトBへの参照を追加しないかぎり、リンカーは最終ビルド製品に両方のプロジェクトを追加することを認識しません(失敗する)。(プロジェクトA>参照を右クリックする> Add)をクリックします。もう1つの方法は、@ Javierが示唆するように、プロジェクトBからプロジェクトAに.lib出力ファイルを手動で追加することです。 –