Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/156.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 带有2个项目的解决方案未编译_C++_Mfc - Fatal编程技术网

C++ 带有2个项目的解决方案未编译

C++ 带有2个项目的解决方案未编译,c++,mfc,C++,Mfc,我有两个项目的解决方案。 在第一个项目中,我得到了框架和一些控件,在第二个项目中是CForcesEditorDialog:CDialog。 当然,我不想比较它们。 但此错误不会给我编译项目: MainFrame.obj:错误LNK2019:未解析的外部符号“public: __此调用CForcesEditorDialog::CForcesEditorDialog(类CWnd*,类MainFrame*)“(??0forceseditordialog@@QAE@PAVCWnd@@(:@@@Z) 在函

我有两个项目的解决方案。 在第一个项目中,我得到了框架和一些控件,在第二个项目中是CForcesEditorDialog:CDialog。 当然,我不想比较它们。 但此错误不会给我编译项目:

MainFrame.obj:错误LNK2019:未解析的外部符号“public: __此调用CForcesEditorDialog::CForcesEditorDialog(类CWnd*,类MainFrame*)“(??0forceseditordialog@@QAE@PAVCWnd@@(:@@@Z) 在函数“protected:int\u thiscall”中引用 大型机::OnCreate(struct tagCREATESTRUCTA*)” (?OnCreate@MainFrame@@IAEHPAUtagCREATESTRUCTA@@@Z)


可能是我有一个问题,包括这个项目。我从来没有在两个项目中找到解决方案。你对此有什么想法吗?

试着在上大型机之前剪切粘贴类CForcesEditorDialog


该怎么做呢

CFORCESEDITORDALOG属于哪种类型的项目?它是静态库还是动态dll

如果是动态的,则需要从dll中导出要在exe中使用的函数和类。本教程提到了导出:

使用AFX_EXT_类。您可以在类声明中使用它从dll中导出,例如:

class AFX_EXT_CLASS CForcesEditorDialog : public CDialog
{

CForcesEditorDialog是您编译的项目的一部分吗?换言之,项目中是否包含CForcesEditorDialog的实现文件(cpp)以向您提供此错误消息?
它是另一个项目或DLL的一部分吗

您有一个链接错误。VisualStudio在编译时找到CForcesEditorDialog,但在链接时没有找到。您必须在第一个项目的项目设置()中添加第二个项目的.lib文件


希望能有帮助。

你的意思是将这些类放在一个文件中?我以为你将它们放在一个文件中。在一个文件中尝试,或者在大型机之前链接CForcesEditorDialog时(我假设您还包括标题,因为我在这里看不到它)是否添加了必要的项目引用,以便项目可以看到它们所依赖的内容?(这两个项目是否相互依赖?如果是,您可能会遇到循环引用问题。)我没有循环重新定义。在*.h文件中,我只使用指针,不在此类文件中包含这些指针的类。在*.cpp文件中,我有所有必要的include。当项目A依赖于项目B时,链接器将不知道将两个项目都添加到最终生成产品中(并且将失败),除非您将项目A的引用添加到项目B中(右键单击项目A>引用>添加)。另一种方法是按照@Javier的建议,手动将.lib输出文件从项目B添加到项目A。第一个和第二个项目的类型是静态库(.lib)。在这种情况下,Javier De Pedro的答案可能是您需要的解决方案。我在forcesEditorDialog=new cforceEditorDialog(this,this)行收到了错误消息。CForcesEditorDialog是我想在这个项目中使用的第二个项目的一部分。CForcesEditorDialog与第二个项目中的其他类有着复杂的关系。因此,在头文件中的第一个项目中,我使用line,而在.cpp文件中,我编写all include。实现这一点的另一种方法是将第二个项目的项目引用添加到第一个项目中,尽管循环项目引用可能会有问题。
class AFX_EXT_CLASS CForcesEditorDialog : public CDialog
{