Kmd*_*Kmd 2 c c++ compiler-construction visual-c++
如何在VC++ 2010 Express中生成纯代码(无运行时检查)?例如,我删除了缓冲区安全检查(设置编译opt/GS-),但在我的代码中,我再次看到了这些调用
call __security_init_cookie ... call _RTC_CheckEsp ... call _RTC_CheckEsp ...
如何删除这些电话?
MSVC文档表明__security_init_cookieCRT运行时调用"使用/ GS编译的代码(缓冲区安全检查)和使用异常处理的代码"(强调添加).请参阅http://msdn.microsoft.com/en-us/library/ms235362%28v=VS.100%29.aspx
如果运行时库中的代码依赖于已经初始化的安全cookie,代码是否使用它(换句话说,运行时库代码可能已经使用/ GS编译,并且如果所以,它需要初始化cookie,无论你的代码是否存在).
至于_RTC_CheckEsp通话 - 应该由/RTCs或/RTC1选项控制.从您的构建中删除这些选项,应该没有调用_RTC_CheckEsp.