显示窗口的极简主义Visual C++应用程序
Minimalistic Visual C++ app which shows a window
我正试图在Visual Studio 2010中创建一个符合以下条件的C++应用程序:
- 显示一个空窗口
- 尽可能小(例如,在100kb)
- 在新的空安装的Windows XP上运行(不需要任何运行时、库等)
基本上,我想摆脱运行时。我唯一需要的就是调用WinAPI函数来显示一个窗口,并在它的表面上BitBlt一些东西。
有可能吗?
1/2:Visual Studio可以生成一个基本模板,这正是您所需要的(显示一个空窗口)。使用File -> New -> New Project -> select 'Win32 Project' -> click 'Finish'
创建项目。静态链接到C运行时库时,Release \Win32二进制文件的大小为81KB(有关详细信息,请参阅下文)。当然,添加代码可能会增加二进制大小。您可能需要查看优化设置,甚至二进制压缩以最小化大小。由于防病毒软件经常出现误报,我不建议使用后者。
3:您需要静态链接到C运行时库。这可以在Configuration Properties -> C/C++ -> Code Generation -> Runtime Library
下进行配置(选择/MT
进行发布,选择/MTd
进行调试)。这样做将允许您在不安装Visual C++2010可再发行包的情况下运行可执行文件。
请注意,使用Visual Studio 2010编译的二进制文件需要Windows XP SP2或更高版本。如果您需要针对SP2之前版本的Windows XP,您可能希望检查此解决方法。
相关文章:
- Visual Studio 2015:Extern "C" 和 "export" 关键字
- 为cl.exe(Visual Studio代码)指定命令行C++版本
- 试图在visual studio上用C++创建一个桌面应用程序
- 如何在MS Visual Studio 2019中运行QT UI
- 如何使用Visual Studio 2017在C++中为参数化对象数组使用唯一指针
- Visual Studio Code - C++ Debugger 無法啟動
- Visual C++ constexpr Hints
- 为什么它不适用于Visual 2019的原因
- Visual Studio 2019:插入多个C++风格的单行注释
- Visual Studio Code "undefined reference to `WinMain@16'"
- visual在c++中将十进制数转换为二进制数
- Visual studio代码重构似乎不起作用(例如,重命名符号-f2)
- Visual Studio中的函数声明和函数定义问题
- 如何指定我希望我的LIB链接到的DLL文件?-Visual Studio 2019
- Visual C++(VS2017)中用户定义的转换不明确
- Visual C++GC接口如何启用它以及要包含哪个库
- visual是否可以在c++中创建一个接收无限数量相同类型(或至少相当数量)参数的函数
- visual c++,如何获取解决方案目录中的代码
- Visual Studio mkl_link_tool.exe链接错误
- Visual Studio(或任何其他工具)能否将地址解释为调用堆栈(boost上下文)的开头