C++ 和 SDL2 -“自动生成”使用的 DLL?

Posted

技术标签:

【中文标题】C++ 和 SDL2 -“自动生成”使用的 DLL?【英文标题】:C++ & SDL2 - "Auto-Generate" used DLLs? 【发布时间】:2014-06-14 23:22:08 【问题描述】:

我有这个问题已经有一段时间了,真的很烦人。

我想知道是否有某种方法可以在可执行文件夹(具体来说是“调试”文件夹)上“自动生成”我在项目中使用的 DLL。 我的意思是,按照我学习的方式,每次创建新项目时,我都需要先执行它,这样才能创建“Debug”文件夹,然后我收到一条错误消息,说缺少某些 DLL(如 SDL2.dll ),然后我从我在此文件夹中使用的库中复制/粘贴缺少的 DLL。

那么,有没有一种方法可以在第一次执行我的项目时创建 Debug 文件夹和 DLL,这样我就不需要每次都手动执行?另外,为了组织,有没有办法将它们放在另一个文件夹中并且项目仍然可以找到它?(这样我可以拥有项目文件夹,并且其中只有“资源”和可执行文件的文件夹)

注意:我使用的是 Visual Studio 2013

【问题讨论】:

【参考方案1】:

首先,调试/发布文件夹是在构建时创建的(编译和链接)。

如果您想更改“工作目录”,换句话说,更改应用程序执行所在的文件夹,您可以从调试部分下的项目属性(右键单击解决方案资源管理器)中进行。

或者,您可以将您的 dll 的构建后副本指定到工作目录中。

【讨论】:

【参考方案2】:

实际上,我找到了一种方法来完成这项工作。

不是“自动生成”DLL,而是有一个文件夹可以放置它们,以便 Visual Studio(可能还有其他程序,我不知道)可以自动找到它们,所以你不需要复制/每次创建新项目时粘贴它。

您只需将 DLL 放入以下文件夹之一:

C:\WINDOWS\SYSTEM32 如果您使用的是 32 位窗口,C:\Windows\SysWOW64 如果您使用的是 64 位窗口。

这样,如果您在另一台计算机上,您只需复制/粘贴 DLL。

【讨论】:

以上是关于C++ 和 SDL2 -“自动生成”使用的 DLL?的主要内容,如果未能解决你的问题,请参考以下文章

WINDOWS+VS2012+cygwin编译ffmpeg成功,DLL不能用

如何在 dll 项目中的 C++ 中创建命名空间和构造函数?

在 C++ 中用另一个 Dll 调用 Dll

C++ 嵌入式 Python PyBytes_AsString 导致 DLL 崩溃

用 SDL2 平铺背景并显示前景

C++ 将字符串传递到 C# dll