Visual Studio C++为我的程序添加了"垃圾"

sub*_*sub 2 c++ visual-c++

我从源代码中查看了MSVC 2010生成的二进制文件,看到所有内容都被"垃圾"填满.(不是那种称自己为"我的代码"的垃圾)

我不知道如何解释,但我的可执行文件被添加了太多不必要的信息,如:

  • 很多Microsoft默认错误消息,我不想要它们
  • XML架构设置(为什么!?)
  • 其他对主程序执行不重要的事情

我如何阻止MSVC这样做?我必须切换到GCC吗?

在所有其他程序中(用C++编写,从Word处理器到游戏),这个垃圾根本不存在.

Ste*_*tes 7

很多Microsoft默认错误消息,我不想要它们

因为您正在使用C/C++运行时(例如,malloc,printf,strcpy)

XML架构设置(为什么!?)

因此,您可以获得适当的UAC(用户帐户控制)处理,最新的命令(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.