适用于Windows的可移植C/C++应用程序的DLL依赖项
我想用C/C++ for
Windows创建一个轻量级的便携式应用程序.我不想静态链接所有内容,因为我希望尽可能减小exe的大小.我还使用
Dependency Walker来跟踪我的exe文件的DLL依赖项.
我的问题是,应用程序可以拥有的DLL依赖项列表是什么,并且可以在不同版本的Windows中保持可移植性?有了这个列表,我可以使用列表检查Dependency Walker的输出,并选择静态链接哪些库以及动态链接哪些库.我更喜欢列表包含来自Windows XP的操作系统更高,但考虑到Windows 98也很有趣. 解决方法
在Visual Studio之类的东西中创建一个基本的Win32应用程序,并使用Dependency Walker检查依赖项.这些是你的基础依赖.将需要所有标准的Win32 DLL文件,包括user32.dll,kernel32.dll等. (虽然其中一些变化,取决于你希望应用程序做什么.在某些情况下,你可以只使用kernel32.dll,但你将无法在屏幕上显示一个窗口.可能相当无用应用程序.)
请记住,可以编译在Windows 98上运行的应用程序的Visual Studio的最新版本是Visual Studio 2005.Visual Studio 2008可以针对最少的Windows 2000,而VS 2010可以针对最少的Windows XP SP2.您需要使用较旧版本的编译器,或手动编辑可执行文件的PE头以更改子系统字段. 如果你真的喜欢这样的事情(虽然这实际上是浪费时间)你应该调查Matt Pietrek的LIBCTINY,最初是从2001年1月在MSDN杂志上发表的an article.这个小图书馆使理论上可以使用 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- windows – 强制新创建的文件的NTFS权限继承
- windows-server-2008-r2 – 如何在Windows Server 2008 R2
- windows-server-2008 – 改进了Windows文件权限的ACL编辑器
- Windows之间的jQuery / javascript通信?
- Microsoft DirectX DirectShow Filters远程代码执行漏洞(MS
- 如何有效克服“u_int8_t vs uint8_t”问题
- 验证 – Microsoft Code Contracts是否不适合验证用户输入?
- windows-server-2003 – 用户无法访问Windows Server 2003中
- windows – 有可选的标签控件吗?
- windows – 如何执行Clojure文件?