Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/145.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++ 将我的DLL添加到C++;_C++_Dll_Project_Add In_Visual Studio 2015 - Fatal编程技术网

C++ 将我的DLL添加到C++;

C++ 将我的DLL添加到C++;,c++,dll,project,add-in,visual-studio-2015,C++,Dll,Project,Add In,Visual Studio 2015,我正在做一个涉及创建动态链接库的项目,所以我想在VisualStudio的控制台应用程序中测试它 DLL也是在VisualStudio中创建的,它没有太多功能,只有几个函数。我不确定是应该在属性的include directories面板中包含library头,还是做其他事情 很多人说我应该在库或参考目录中添加相应的.lib文件,但我不确定VS是否会在DLL旁边生成.lib文件。我正在使用VS 2015。目前我面前没有VS,但以下是设置VS的一般步骤: Properties->Linker

我正在做一个涉及创建动态链接库的项目,所以我想在VisualStudio的控制台应用程序中测试它

DLL也是在VisualStudio中创建的,它没有太多功能,只有几个函数。我不确定是应该在属性的include directories面板中包含library头,还是做其他事情


很多人说我应该在库或参考目录中添加相应的
.lib
文件,但我不确定VS是否会在DLL旁边生成
.lib
文件。我正在使用VS 2015。

目前我面前没有VS,但以下是设置VS的一般步骤:

Properties->Linker->Input: your.lib
Properties->Linker->Additional Library Directories: ../your/bin
Properties->General->Compiler->Additional Include Directories: ../your/include
要构建应用程序,DLL的API头必须在编译时包含在include中,在链接时它的LIB文件必须在bin中。一旦你有了你的应用程序EXE,你所需要的就是DLL在执行时与你的EXE在同一个文件夹中


您可能还希望将dll项目和应用程序项目添加到VS中的公共解决方案中,并将(右键单击)项目依赖关系从应用程序添加到dll中。这确保了正确的构建顺序,假设您要构建dll。

您也可以像我那样做

  • 您可以在解决方案目录中创建
    Libs
    目录
  • 然后,您可以将.DLL文件放在
    Libs
    目录或
    Libs

    • 在我的例子中,我在其中添加了整个
      SFML-2.3.2
      目录,其中包括源代码、.lib文件和.dll文件
    • 我确实在项目属性中链接了我所能链接的内容,但是我使用VisualStudio的宏来填充解决方案目录的路径名。以防万一,我想把它放在版本控制中,从多台机器上处理它
  • 然后我打开了项目的属性页

  • 在属性页中,我进入了构建事件->构建后事件->命令行
  • 在命令行中,您可以添加复制命令,该命令将任何需要的文件复制到与需要它们的可执行文件相同的目录中。
    • 在我的例子中,我使用了:
      copy“$(SolutionDir)Libs\SFML-2.3.2\bin\*”$(TargetDir)
    • 我本可以编写多个命令来复制所需的单个文件,但我花了整整三个小时试图让SFML工作,而没有实际安装它

  • 您添加dll作为引用了吗?在顶部的Visual Studio中,转到Project,然后添加引用…,浏览并查找文件。我不确定这是否是你的意思。我想是的,只是每个人都告诉我我应该添加一个corespinding静态库文件,而不是DLL本身,所以我要求确定,我以前尝试过一次,但没有成功,我不确定现在的问题是什么。问题是关于Visual Studio项目中DLL的一般使用,您的答案与SFML有关。请概括一下答案。很抱歉,我正在考虑让SFML在我的项目上工作,而不是在我的计算机上实际安装它,所以当时我打开了很多选项卡。看来我把答案加错了。