Exception Handling
Stack around the variable was corrupted
内存越界将会导致这个异常出现,例如如下代码:
void Reset(void * pv)
{
if (pv)
{
double * pd = reinterpret_cast<double *>(pv);
*pd = 0.0;
}
}
void Fun1()
{
long l1 = 1;
Reset(&l1);
}
调用函数Fun1将会通过编译,而在执行过程中,由于函数返回指针以及被修改了,由与long是四个字节的,而double是8个字节的,所以当将0.0赋予指针后,将覆盖函数的回调指针,从而导致异常出现。
error MSB6006: "cmd.exe" exited with code 3
通常是由于SDK或者关键文件没有找到才会导致的
可以通过启动详细build信息来查看具体错误,即使没有找到也可以将这段详细编译信息提交到msdn找专业的人去看,如下截图是教你如何打开详细信息
注意,如果解决问题后,请将其改为normal,否则编译会变慢
SDK dir for vc, framework
open the visual studio command line tool and then echo these macro
FRAMEWORKDR
VCINSTALLDIR
WINDOWSSDKDIR