嵌套DLL包括Visual Studio

时间:2018-05-02 21:30:40

标签: c++ visual-studio dll dllimport dllexport

我有一个包含多个项目的Visual Studio 解决方案

  • 实用程序 DLL
  • RendererEngine DLL
  • PhysicsEngine DLL
  • GameProject EXE

这是一个架构: enter image description here

Renderer和Physics DLL包含Utils DLL。在我决定创建此GameProject(来自Visual Studio的控制台应用程序项目)之前,关于Visual Studio配置的所有内容都不是问题。 GameProject将从Renderer和Physics引擎中创建导出类的实例。

如果我想让我的GameProject 链接没有问题我需要包含我的 include文件夹 .lib Utils DLL项目。我不明白为什么。

这里有VS配置截图:

加入Conf:

enter image description here

Lib Conf:

enter image description here

我是否必须在GameProject的Visual Studio配置中包含嵌套DLL?有没有人有类似的问题?

1 个答案:

答案 0 :(得分:1)

如果您的程序(.exe)只使用由dll接口声明和/或定义的内容,则您的程序构建不需要知道那些dll的内容。在他们的实现中使用。

但是,如果您的utils项目中的任何内容在dll的接口标题中可见,并且您在程序代码中使用它,那么您将从程序到utils.dll具有依赖性。 现在,您需要通知构建环境在哪里查找内容。

具体:

如果你需要为你的构建包含utils的目录,那么在{strong> {{1}的标题的一个或多个中有一个来自utils-project的头文件的include。 }和/或Renderer-

如果你需要为你的构建包含utils的lib文件,那么就会调用{strong> {strong>一个或多个导出的函数(或导出类的方法)PhysicsEngine

解决方案:清理dll的接口标头文件