将我的 DLL 添加到 C++ 中的 Visual Studio 项目中
Adding my DLL into a Visual Studio project in C++
我正在做一个涉及制作动态 link 库的项目,所以我想在 Visual Studio 的控制台应用程序中测试它。
DLL也是Visual Studio做的,内容不多,就几个功能而已。我不确定我是否应该将库 header 包含在 Properties 的 include 目录面板中,或者做其他
很多人说我应该在 Library 或 Reference 目录中添加它对应的 .lib
文件,但我不确定 VS 会在 DLL 旁边生成一个 .lib
文件.我正在使用 VS 2015。
此刻我面前没有 VS,但这些应该是设置它的一般步骤:
Properties->Linker->Input: your.lib
Properties->Linker->Additional Library Directories: ../your/bin
Properties->General->Compiler->Additional Include Directories: ../your/include
要构建您的应用程序,DLL 的 API headers 必须在 compile-time 的包含中,它是 link-time 的库中的 LIB 文件。一旦你有了你的应用程序 EXE,你所需要的只是 DLL 在执行时与你的 EXE 位于同一文件夹中。
您可能还想将 dll 项目和应用程序项目添加到 VS 中的通用解决方案中,并将应用程序的项目依赖项添加(右键单击)到 dll。这确保了构建的正确顺序,假设您要构建 dll。
你也可以做我做的。
- 您可以在解决方案目录中创建一个
Libs
目录。
然后您可以将您的 .DLL 文件放在 Libs
目录或 sub-directory Libs
目录中
- 在我的例子中,我在其中添加了整个
SFML-2.3.2
目录,其中包括 source-code、.lib 文件和 .dll 文件。
- 我在项目属性中尽我所能 link,但我使用 Visual Studio 的宏来填充解决方案目录的路径名。以防万一我想把它放在版本控制中并从多台机器上处理它。
然后我打开了项目的 属性 页面。
- 在 属性 页面中,我转到 Build Events -> Post-Build Event -> Command Line
- 在命令行中,您可以添加一个复制命令,将任何需要的文件复制到与需要它们的可执行文件相同的目录中。
- 在我的例子中,我使用了:
copy "$(SolutionDir)Libs\SFML-2.3.2\bin\*" "$(TargetDir)"
- 我本可以编写多个命令来只复制我需要的单个文件,但我花了整整三个小时试图让 SFML 工作而没有实际安装它。
我正在做一个涉及制作动态 link 库的项目,所以我想在 Visual Studio 的控制台应用程序中测试它。
DLL也是Visual Studio做的,内容不多,就几个功能而已。我不确定我是否应该将库 header 包含在 Properties 的 include 目录面板中,或者做其他
很多人说我应该在 Library 或 Reference 目录中添加它对应的 .lib
文件,但我不确定 VS 会在 DLL 旁边生成一个 .lib
文件.我正在使用 VS 2015。
此刻我面前没有 VS,但这些应该是设置它的一般步骤:
Properties->Linker->Input: your.lib
Properties->Linker->Additional Library Directories: ../your/bin
Properties->General->Compiler->Additional Include Directories: ../your/include
要构建您的应用程序,DLL 的 API headers 必须在 compile-time 的包含中,它是 link-time 的库中的 LIB 文件。一旦你有了你的应用程序 EXE,你所需要的只是 DLL 在执行时与你的 EXE 位于同一文件夹中。
您可能还想将 dll 项目和应用程序项目添加到 VS 中的通用解决方案中,并将应用程序的项目依赖项添加(右键单击)到 dll。这确保了构建的正确顺序,假设您要构建 dll。
你也可以做我做的。
- 您可以在解决方案目录中创建一个
Libs
目录。 然后您可以将您的 .DLL 文件放在
目录中Libs
目录或 sub-directoryLibs
- 在我的例子中,我在其中添加了整个
SFML-2.3.2
目录,其中包括 source-code、.lib 文件和 .dll 文件。 - 我在项目属性中尽我所能 link,但我使用 Visual Studio 的宏来填充解决方案目录的路径名。以防万一我想把它放在版本控制中并从多台机器上处理它。
- 在我的例子中,我在其中添加了整个
然后我打开了项目的 属性 页面。
- 在 属性 页面中,我转到 Build Events -> Post-Build Event -> Command Line
- 在命令行中,您可以添加一个复制命令,将任何需要的文件复制到与需要它们的可执行文件相同的目录中。
- 在我的例子中,我使用了:
copy "$(SolutionDir)Libs\SFML-2.3.2\bin\*" "$(TargetDir)"
- 我本可以编写多个命令来只复制我需要的单个文件,但我花了整整三个小时试图让 SFML 工作而没有实际安装它。
- 在我的例子中,我使用了: