编译器错误 C3204 .“_alloca”不能从 catch 块内调用?
VS2005 的环境下。用release编译如下代码:
try {
if (vt == VT_BSTR) {
long num = ::atol(OLE2T(var.bstrVal));
::sprintf(tp,"%d",var.iVal);
return 1;
}
}
catch (...) {
return 0;
}
编译完了后,会出现以下错误:
编译器错误 C3204 .“_alloca”不能从 catch 块内调用。
我跟踪了代码,发现OLE2T是使用了VS2005 自带的文件atlconv.h里的定义。
#define OLE2T(lpo) W2A(lpo)
而在W2A的定义里使用到_alloca.
上网也找过很多资料,但是都没有一个具体解决办法。
请CSDN上的高手提供个解决思路,如何解决这个编译问题。谢谢。