如果在没有安装VS或CRT的操作系统上运行C ++程序的Debug版本,是否仍会出现Debug Assertion错误框?
那些说“Debug Assert Failed!”。
或者,只有在机器安装了某些组件(如CRT或Visual Studio)时才能获取它们?
答案 0 :(得分:2)
这取决于您构建应用程序的方式。如果您动态链接到调试CRT,则用户不太可能在其系统上安装调试CRT,除非他们是开发人员(实际上由于VS的许可,您无法分发它)。所以在这种情况下它甚至不会运行。如果您静态链接到CRT,那么如果您已经向它们发送了调试版本,则用户将看到断言。
答案 1 :(得分:1)
如果你可以让它运行,是的。使用/ MDd(默认值)进行编译需要分发动态CRT的调试版本。它不是可再发行的组件,无论如何运输都是违反许可证的。您可以通过编译/ MTd来解决它。
当然,您的用户将不知道“调试断言失败”意味着什么,并且无法理解为什么忽略不起作用。最好避免。