我已经从我的源代码中查看了 MSVC 2010 生成的二进制文件,发现所有内容都充满了“垃圾”。 (不是那种自称“我的代码”的垃圾)
我不知道怎么解释,但是我的可执行文件被添加了太多不必要的信息,比如:
- 很多 Microsoft 默认错误消息,我不想要它们
- XML 架构设置(为什么!?)
- 其他对主程序执行不重要的事情
如何阻止 MSVC 这样做?我必须切换到 GCC 吗?
在所有其他程序中(也用 C++ 编写,从文字处理器到游戏),这个垃圾根本不存在。
最佳答案
Lots of Microsoft default error messages, I don't want them
因为您正在使用 C/C++ 运行时(例如,malloc、printf、strcpy)
XML schema settings (Why!?)
因此,您可以获得适当的 UAC(用户帐户控制)处理、最新的 comctrl(这是 Windows 主题控件应用于您的程序所必需的),并指定要使用的 msvcrt.dll。
编辑: 另一个导致额外代码的功能是 VC 在堆栈中放置 cookie 以及相关代码来验证 cookie。见http://blogs.msdn.com/michael_howard/archive/2007/04/03/hardening-stack-based-buffer-overrun-detection-in-vc-2005-sp1.aspx了解更多信息。
关于c++ - Visual Studio C++ 将 "junk"添加到我的程序中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2551929/