Visual c++ visualc&x2B+;静态库 我在Visual Studio 2008中编写C++静态库A.LIB。在我的静态库中,我使用了另一个静态库B.lib(.lib)公开的几个API
我编写了一个使用a.lib的应用程序。由于A.lib中很少有头文件使用B.lib中的头文件,因此我的应用程序需要B.lib头文件的路径。如何避免我的应用程序,使我不需要提供用于编译的B.lib头文件的路径?您可以转到“设置”并将目录添加到附加的include目录中,只需按名称使用头文件即可 不要在库的界面中使用B-Header中的类型。完全隐藏实现的一个好方法是使用与纯抽象基类一起作为接口。不过,您仍然需要在应用程序中链接B.lib 样品前:Visual c++ visualc&x2B+;静态库 我在Visual Studio 2008中编写C++静态库A.LIB。在我的静态库中,我使用了另一个静态库B.lib(.lib)公开的几个API,visual-c++,static-libraries,Visual C++,Static Libraries,我编写了一个使用a.lib的应用程序。由于A.lib中很少有头文件使用B.lib中的头文件,因此我的应用程序需要B.lib头文件的路径。如何避免我的应用程序,使我不需要提供用于编译的B.lib头文件的路径?您可以转到“设置”并将目录添加到附加的include目录中,只需按名称使用头文件即可 不要在库的界面中使用B-Header中的类型。完全隐藏实现的一个好方法是使用与纯抽象基类一起作为接口。不过,您仍然需要在应用程序中链接B.lib 样品前: // A.h #include "B.h"
// A.h
#include "B.h"
class Foo {
public:
void DoStuff();
private:
B::Bar Data; // B::Data comes from library B
};
这在你的标题中增加了一个对B的依赖
对于Factory,您的应用程序现在使用IFoo.h而不是A.h:
// IFoo.h
class IFoo {
public:
static IFoo * CreateInstance( ); // implemented in IFoo.cpp, just returns new Foo
virtual void DoStuff() = 0;
virtual ~IFoo() {}
};
// A.h
class Foo : public IFoo {
public:
virtual void DoStuff();
private:
B::Bar Data; // B::Data comes from library B
};