c++ - Visual Studio C++ 将 "junk"添加到我的程序中

标签 c++ visual-c++

我已经从我的源代码中查看了 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/

相关文章:

c++ - 什么是 &= 和 |=

c++ - 如何打印 C++ 中相互依赖的枚举值的名称

c++ - std::cin 适用于少量行,但不适用于较大行

c - 为什么我们使用 FILE * 而不是 FILE 进行 I/O

visual-c++ - 使用预编译头文件时,我是否仍应在需要的地方包含头文件?

c++ - Clang 不编译代码,但 gcc 和 msvc 编译了它

java - 使用 JNI 时如何在 C++ 中获取 Java 异常的描述?

c++ - 模板 <unsigned int N> 是什么意思?

c++ - 当 std 数组初始化太小时,C++ 会引发错误吗?

excel - C++ 未处理的异常 - 堆已损坏