c++ - 收集项目中所有 DLL 的更有效方法
问题描述
我想将一个可执行文件导出给其他人,他们可以通过点击来玩游戏,但是当我点击可执行文件时它会立即关闭。我认为它错过了一些能够运行的 DLL 文件。所以我检查了构建日志。
'Pacman.exe' (Win32): Loaded 'C:\Windows\System32\ntdll.dll'.
'Pacman.exe' (Win32): Loaded 'C:\Windows\System32\kernel32.dll'.
'Pacman.exe' (Win32): Loaded 'C:\Windows\System32\KernelBase.dll'.
'Pacman.exe' (Win32): Loaded 'C:\Windows\System32\user32.dll'.
'Pacman.exe' (Win32): Loaded 'C:\Windows\System32\win32u.dll'.
'Pacman.exe' (Win32): Loaded 'C:\Windows\System32\d3d11.dll'.
'Pacman.exe' (Win32): Loaded 'C:\Windows\System32\gdi32.dll'.
'Pacman.exe' (Win32): Loaded 'C:\Windows\System32\D3DCompiler_47.dll'.
'Pacman.exe' (Win32): Loaded 'C:\Windows\System32\gdi32full.dll'.
'Pacman.exe' (Win32): Loaded 'C:\Windows\System32\msvcrt.dll'.
'Pacman.exe' (Win32): Loaded 'C:\Windows\System32\ucrtbase.dll'.
'Pacman.exe' (Win32): Loaded 'C:\Windows\System32\msvcp_win.dll'.
'Pacman.exe' (Win32): Loaded 'C:\Windows\System32\rpcrt4.dll'.
'Pacman.exe' (Win32): Loaded 'C:\Windows\System32\ole32.dll'.
'Pacman.exe' (Win32): Loaded 'C:\Windows\System32\dxgi.dll'.
'Pacman.exe' (Win32): Loaded 'C:\Windows\System32\combase.dll'.
'Pacman.exe' (Win32): Loaded 'C:\Windows\System32\cryptsp.dll'.
'Pacman.exe' (Win32): Loaded 'C:\Windows\System32\msvcp140.dll'.
.......等等。
只有一种方法可以手动复制上述所有文件吗?
解决方案
这些文件中的绝大多数只是 Windows 操作系统的一部分。
msvcp140.dll
是 Visual C++ 运行时的一部分。您可以并行部署这些(即 xcopy 样式部署)。请参阅Microsoft 文档。如果您使用 Visual C++ 构建游戏,您需要的确切文件取决于哪个版本。
vcruntime140.dll
msvcp140.dll
concrt140.dll(仅用于 Windows XP)
vccorlib140.dll(仅用于 C++/CX)
msvcp140_1.dll:(在 VS 2017 中添加)C++17 memory_resource
msvcp140_2.dll:(在 VS 2017 15.7 中添加)C++17 数学特殊函数
vcruntime140_1.dll :(在 VS 2019 中添加)__CxxFrameHandler4 用于 FH4(仅限 x64)
msvcp140_codecvt_ids.dll:(在 VS 2019 16.2 中添加)修复了
char8_t
、char16_t
和char32_t
.
HLSL 编译器取决于您的D3DCompiler_47.dll
最低操作系统。Windows 8.1 和 Windows 10 已经包含它。如果您需要支持 Windows 7 SP1 或 Windows 8.0,您可以将其与您的游戏并排包含。请参阅此博客文章。
推荐阅读
- python - 网络抓取时间序列数据的交互式图表*新手*
- data-visualization - 使用 Grafana 进行频谱分析(高分辨率热图)
- android - 视频未在 RecyclerView 中播放
- reactjs - IDToken 为 react-native-google-signin 返回 null
- clang - 如何匹配来自 cxxMethodDecl 节点的所有返回 stmt
- r - networkD3:如何在没有输出的情况下将桑基图中的颜色分配给节点
- html - HTML 网格在元素之间有很大的空间
- r - 构面网格标题和标签
- graphics - 示例需要在 TeX 中使用 tikz 包进行 for 循环
- r - tidyverse : 连续出现零