Visual Studio – C ++ – 构build和运行应用程序为32位或64位 – 从专用的ProgramFiles目录中加载DLL

我构build我的应用程序为x86或x64。 这个应用程序使用外部DLL。

我有x64系统(Windows 10),为这两个平台安装了相同的DLL库 – x86和x64。 它们被放置在相应的Program Files目录内的相同文件夹中。 我可以手动将path设置为环境variablesPATH中的任何一个。 但是当我切换平台并且想要testing另一个时,重写PATH并重置计算机是有点不利的。 有没有解决scheme,系统如何从正确的Program Files目录自动加载正确的DLL?

复制可执行文件旁边的构建位置中的DLL,对于VS,这通常是\ Debug或\ Release,依赖于架构相关的子目录(即x86或x64)。 只要确保项目设置中的目标/输出位置设置正确。

您只需复制一次,或者更正确一次:每次“清理”解决方案后。 为了方便起见,许多人使用dll-copy脚本(批处理,ruby或python),并在清理前或清理后自动运行。 您可以在项目设置中的预生成步骤或生成后步骤中调用脚本。

你也可以挖掘CMake,我真的建议保持构建矩阵组织。 它还安装了预先构建和后期构建的操作,如跟踪依赖关系,复制文件,打包,安装,版本验证等。但最终还是要学习如何操作相同的项目设置,而且相当一个学习曲线做对了。

我找到了从Visual Studio运行应用程序的解决方案: 如何在Visual Studio中设置DLL文件的路径?

它像epxected一样工作。 如果我运行应用程序的Visual Studio,我自己设置PATH变量,也正在工作。