Visual c++ 如何在不实际手动添加头文件和源文件的情况下,在另一个项目中使用项目中存在的函数?

Visual c++ 如何在不实际手动添加头文件和源文件的情况下,在另一个项目中使用项目中存在的函数?,visual-c++,Visual C++,我正在使用Visual Studio 6.0进行VC++项目。 工作区中包含大约38个项目。我需要使用其中一个项目中的函数,比如X项目。。。在另一个项目中,说Y 一种方法是将项目X中存在的所有.cpp文件和.h文件添加到项目Y中。这很有效。 但是我正在寻找一个解决方案,在这个解决方案中,我可以在项目Y中包含项目X的所有文件,而不实际添加文件。必须有某种设置可以帮助我做到这一点。 我尝试包含X到Y中存在的所有相关DLL和.lib文件,当我执行时,我得到错误:未解析的外部符号public:virtu

我正在使用Visual Studio 6.0进行VC++项目。 工作区中包含大约38个项目。我需要使用其中一个项目中的函数,比如X项目。。。在另一个项目中,说Y

一种方法是将项目X中存在的所有.cpp文件和.h文件添加到项目Y中。这很有效。 但是我正在寻找一个解决方案,在这个解决方案中,我可以在项目Y中包含项目X的所有文件,而不实际添加文件。必须有某种设置可以帮助我做到这一点。
我尝试包含X到Y中存在的所有相关DLL和.lib文件,当我执行时,我得到错误:未解析的外部符号public:virtual__________;blah…

当您想在项目Y中使用项目X的函数时,项目X必须是一种库静态库或DLL。要做到这一点,你必须

更改项目Y的包含搜索路径,使其包含项目X的头文件所在的目录

将库X.lib添加到项目Y的链接器附加库中。如果X是DLL项目,则添加X.lib导入库,如果X是lib项目,则项目输出立即是要添加到项目Y的X.lib

后一步可以通过在工作区中定义项目依赖性来完成。但我建议使用链接器设置来执行此操作

将.cpp文件添加到项目Y是个坏主意。项目X旨在编译其文件


编辑:如果X是一个DLL项目,那么它必须是您想要使用的。

将包含要使用X.h的头文件的路径添加到其中

Project->Settings->C/C++->Category(Preprocessor)->Additional Include directories
然后为要使用x.lib的项目添加包含.lib文件的路径

Project->Settings->Linker->Category(Input)->Additional Library path
Project->Settings->Linker->Category(General)->Object/library modules 
最后,输入要在其中使用x.lib的库的名称

Project->Settings->Linker->Category(Input)->Additional Library path
Project->Settings->Linker->Category(General)->Object/library modules 
那就做吧

#include <x.h> 

在项目Y中的新文件顶部,使用x.h中的方法是什么类型的项目?DLL?静态libs?exes?项目文件生成一个DLL。嗨,项目X是DLL项目。因此,在项目Y设置链接输入附加库路径:我输入了X.lib,似乎不起作用。它给了我未解决的外部符号错误。但是,如果我从X项目添加.cpp文件,错误就会消失。我在这里犯了什么错误?如果Y是DLL项目,则Y.lib将定义导出的符号。因此,您需要导出希望在加载DLL时可以访问的符号。对于类重新定义错误-这意味着您在多个其他文件中包含相同的头,这意味着编译器将有多个副本。为了防止出现这种情况,应该在包含的头文件中使用define,以确保只包含一次。类似于ifndef X_H的东西定义了X_H endif