3

我正在将使用 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

你明白吗?

4

1 回答 1

3

看起来这里最有可能的问题是,ClntFree它实际上是一个扩展为使用 SEH__try块的宏。表面上没有其他东西看起来像宏一样有意义,而宏似乎是最可能的原因。

您是否查看过定义ClntFree以查看它是否为宏?

于 2012-05-16T17:56:30.277 回答