我正在将用VC ++ 6.0编写的软件迁移到VS 2010 / VC ++ 2010。我有一个不能在调试模式下编译的项目。我有:
LBSC_AppUserInfoList *
LBSC_Session::GetUsersInfo( const LBSC_Ticket *pTicket )
{
TSROut_GetUsersInfo sOut;
C_Buffer *pcbRet = NULL;
TSRIn_TicketPar InPar;
//...
ClntFree( (void *)sOut.szBuffer ); // dealoca o que veio do RPC
return( pList );
} // C2712 - Cannot use __try in functions that require object unwinding
我还没提到__try
你不明白吗?答案 0 :(得分:3)
这里最可能的问题似乎是ClntFree
实际上是一个扩展为使用SEH __try
块的宏。表面上没有任何其他内容似乎有意义,因为宏观和宏似乎是最有可能的原因。
您是否看过ClntFree
的定义,看它是不是宏?