【发布时间】:2013-04-06 19:40:10
【问题描述】:
我已经在 Dependency Walker 中打开了我的程序。它显示了以下 DLL:
- GDI32.DLL
- OLEAUT32.DLL
- IMM32.DLL
- WINMM.DLL
- KERNEL32.DLL
- USER32.DLL
- SHELL32.DLL
- OLE32.DLL
- ADVAPI32.DLL
- WS2_32.DLL
- MSVCP100.DLL
- MSVCR100.DLL
所以我猜其中一半是 Windows 的一部分,另一半是 C++ 的一部分,对吧?找出哪些是操作系统的一部分,哪些不是?
【问题讨论】:
-
我怀疑这里是否真的有答案——DLL 只是函数的集合。事后,将其中一些分类为 X 的一部分与 Y 的一部分完全取决于我们。
-
所以我运气不好?我正在尝试将所需的 DLL 打包到一个文件夹中。我不能使用安装程序,因为目标机器要求不使用安装程序。我不能使用 -MT 标志,因为它使用 Qt 库。
-
这就是我用来获取 DLL 列表的方法。这就是 Dependency Walker。
-
Microsoft 包含一个可再发行组件列表。这就是您可以/不能包含在您的应用程序中的内容的指南。对于大多数事情,vc_redist.exe 是要包含的主要内容。
-
如果您坚持这种无安装程序的立场,Windows DLL 的更新很有可能会破坏您的安装。安装程序数据库有助于跟踪哪些应用程序依赖于哪些 DLL,并且没有关于您的应用程序的信息很容易破坏。查看并行 DLL 概念...
标签: c++ deployment dependencies