这篇教程C++ EXC_TRY函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中EXC_TRY函数的典型用法代码示例。如果您正苦于以下问题:C++ EXC_TRY函数的具体用法?C++ EXC_TRY怎么用?C++ EXC_TRY使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了EXC_TRY函数的18个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: ADDTOCALLSTACKbool CSector::r_LoadVal( CScript &s ){ ADDTOCALLSTACK("CSector::r_LoadVal"); EXC_TRY("LoadVal"); switch ( FindTableSorted( s.GetKey(), sm_szLoadKeys, CountOf( sm_szLoadKeys )-1 )) { case SC_COLDCHANCE: SetWeatherChance( false, s.HasArgs() ? s.GetArgVal() : -1 ); return true; case SC_FLAGS: m_dwFlags = s.GetArgVal(); return true; case SC_LIGHT: if ( g_Cfg.m_bAllowLightOverride ) SetLight( (s.HasArgs()) ? s.GetArgVal() : -1 ); else g_Log.EventWarn("AllowLightOverride flag is disabled in sphere.ini, so sector's LIGHT property wasn't set/n"); return true; case SC_RAINCHANCE: SetWeatherChance( true, s.HasArgs() ? s.GetArgVal() : -1 ); return true; case SC_SEASON: SetSeason(s.HasArgs() ? static_cast<SEASON_TYPE>(s.GetArgVal()) : SEASON_Summer); return (true); case SC_WEATHER: SetWeather(s.HasArgs() ? static_cast<WEATHER_TYPE>(s.GetArgVal()) : WEATHER_DRY); return true; } EXC_CATCH; EXC_DEBUG_START; EXC_ADD_SCRIPT; EXC_DEBUG_END; return false;}
开发者ID:Sphereserver,项目名称:Source2,代码行数:35,
示例2: ADDTOCALLSTACKbool CWebPageDef::r_LoadVal( CScript & s ) // Load an item Script{ ADDTOCALLSTACK("CWebPageDef::r_LoadVal"); EXC_TRY("LoadVal"); switch ( FindTableSorted( s.GetKey(), sm_szLoadKeys, COUNTOF( sm_szLoadKeys )-1 )) { case WC_PLEVEL: m_privlevel = static_cast<PLEVEL_TYPE>(s.GetArgVal()); break; case WC_WEBPAGEFILE: m_sDstFilePath = s.GetArgStr(); break; case WC_WEBPAGELOG: m_iUpdateLog = s.GetArgVal(); break; case WC_WEBPAGESRC: return SetSourceFile( s.GetArgStr(), NULL ); case WC_WEBPAGEUPDATE: // (seconds) m_iUpdatePeriod = s.GetArgVal() * TICK_PER_SEC; if ( m_iUpdatePeriod && m_type == WEBPAGE_TEXT ) { m_type = WEBPAGE_TEMPLATE; } break; default: return( CScriptObj::r_LoadVal( s )); } return true; EXC_CATCH; EXC_DEBUG_START; EXC_ADD_SCRIPT; EXC_DEBUG_END; return false;}
开发者ID:Sphereserver,项目名称:Source,代码行数:35,
示例3: ADDTOCALLSTACKbool CSector::r_LoadVal( CScript &s ){ ADDTOCALLSTACK("CSector::r_LoadVal"); EXC_TRY("LoadVal"); switch ( FindTableSorted( s.GetKey(), sm_szLoadKeys, COUNTOF( sm_szLoadKeys )-1 )) { case SC_COLDCHANCE: SetWeatherChance( false, s.HasArgs() ? s.GetArgVal() : -1 ); return( true ); case SC_FLAGS: m_dwFlags = s.GetArgVal(); return true; case SC_LIGHT: if ( g_Cfg.m_bAllowLightOverride ) m_Env.m_Light = static_cast<unsigned char>(s.GetArgVal() | LIGHT_OVERRIDE); return true; case SC_RAINCHANCE: SetWeatherChance( true, s.HasArgs() ? s.GetArgVal() : -1 ); return( true ); case SC_SEASON: SetSeason(s.HasArgs() ? static_cast<SEASON_TYPE>(s.GetArgVal()) : SEASON_Summer); return (true); case SC_WEATHER: SetWeather(s.HasArgs() ? static_cast<WEATHER_TYPE>(s.GetArgVal()) : WEATHER_DRY); return( true ); } EXC_CATCH; EXC_DEBUG_START; EXC_ADD_SCRIPT; EXC_DEBUG_END; return false;}
开发者ID:MortalROs,项目名称:Source,代码行数:33,
示例4: EXC_TRYbool CScriptTriggerArgs::r_Verb( CScript & s, CTextConsole * pSrc ){ int index; LPCTSTR pszKey = s.GetKey(); LPCTSTR pszArgs = s.GetArgStr(); LOCKDATA; EXC_TRY(("r_Verb('%s %s',%x)", pszKey, pszArgs, pSrc)); if ( !strnicmp( "LOCAL.", pszKey, 6 ) ) { bool fQuoted = false; m_VarsLocal.SetStr( s.GetKey()+6, fQuoted, s.GetArgStr( &fQuoted ), false ); return( true ); } index = FindTableSorted( s.GetKey(), sm_szLoadKeys, COUNTOF(sm_szLoadKeys)-1 ); switch (index) { case AGC_N: case AGC_N1: m_iN1 = s.GetArgVal(); return true; case AGC_N2: m_iN2 = s.GetArgVal(); return true; case AGC_N3: m_iN3 = s.GetArgVal(); return true; case AGC_S: Init( s.GetArgStr() ); return true; } EXC_CATCH("CScriptTriggerArgs"); return false;}
开发者ID:GenerationOfWorlds,项目名称:Sphere,代码行数:35,
示例5: ADDTOCALLSTACKbool CItemSpawn::r_WriteVal(LPCTSTR pszKey, CGString & sVal, CTextConsole *pSrc){ ADDTOCALLSTACK("CitemSpawn:r_WriteVal"); EXC_TRY("WriteVal"); if (!strnicmp(pszKey, "amount", 6)) { sVal.FormatVal(GetAmount()); return true; } else if ( !strnicmp(pszKey, "at.", 3) ) { pszKey += 3; int objIndex = Exp_GetVal(pszKey); if ( m_obj[objIndex].ItemFind() ) return m_obj[objIndex].ItemFind()->r_WriteVal(pszKey, sVal, pSrc); else if ( m_obj[objIndex].CharFind() ) return m_obj[objIndex].CharFind()->r_WriteVal(pszKey, sVal, pSrc); return true; } else if ( !strnicmp(pszKey, "count", 5) ) { sVal.FormatVal(GetCount()); return true; } EXC_CATCH; return CItem::r_WriteVal(pszKey, sVal, pSrc);}
开发者ID:DarkLotus,项目名称:Source,代码行数:27,
示例6: EXC_TRYbool CItemMessage::r_Verb( CScript & s, CTextConsole * pSrc ){ LOCKDATA; EXC_TRY(("r_Verb('%s %s',%x)", s.GetKey(), s.GetArgStr(), pSrc)); ASSERT(pSrc); if ( s.IsKey( sm_szVerbKeys[0] )) { // 1 based pages. int iPage = ( s.GetArgStr()[0] && toupper( s.GetArgStr()[0] ) != 'A' ) ? s.GetArgVal() : 0; if ( ! iPage ) { m_sBodyLines.RemoveAll(); return( true ); } else if ( iPage <= m_sBodyLines.GetCount()) { m_sBodyLines.RemoveAt( iPage-1 ); return( true ); } } if ( s.IsKeyHead( "PAGE", 4 )) { SetPageText( atoi( s.GetKey() + 4 )-1, s.GetArgStr()); return( true ); } return CItemVendable::r_Verb(s, pSrc); EXC_CATCH("CItemMessage"); return false;}
开发者ID:GenerationOfWorlds,项目名称:Sphere,代码行数:29,
示例7: ADDTOCALLSTACKvoid CPathFinder::FillMap(){ ADDTOCALLSTACK("CPathFinder::FillMap"); CRegionBase *pArea; CPointMap pt, ptChar; EXC_TRY("FillMap"); pt = ptChar = m_pChar->GetTopPoint(); for ( int x = 0 ; x != PATH_SIZE; ++x ) { for ( int y = 0; y != PATH_SIZE; ++y ) { if (x == m_Target.m_x && y == m_Target.m_y) { // always assume that our target position is walkable m_Points[x][y].m_Walkable = PATH_WALKABLE; } else { pt.m_x = static_cast<signed short>(x) + m_RealX; pt.m_y = static_cast<signed short>(y) + m_RealY; pArea = m_pChar->CanMoveWalkTo(pt, true, true, DIR_QTY, true); m_Points[x][y].m_Walkable = pArea ? PATH_WALKABLE : PATH_UNWALKABLE; } m_Points[x][y].Set(static_cast<WORD>(x), static_cast<WORD>(y), pt.m_z, pt.m_map); } } EXC_CATCH;}
开发者ID:bucketyied,项目名称:Source,代码行数:33,
示例8: ADDTOCALLSTACKbool CRegionWorld::r_Verb( CScript & s, CTextConsole * pSrc ) // Execute command from script{ ADDTOCALLSTACK("CRegionWorld::r_Verb"); EXC_TRY("Verb"); /*LPCTSTR pszKey = s.GetKey(); if ( !strnicmp(pszKey, "CLEARTAGS", 9) ) { pszKey = s.GetArgStr(); SKIP_SEPARATORS(pszKey); m_TagDefs.ClearKeys(pszKey); return true; } int index = FindTableSorted(pszKey, sm_szVerbKeys, COUNTOF(sm_szVerbKeys) - 1); if ( index < 0 )*/ return CRegionBase::r_Verb(s, pSrc); /*switch( static_cast<RWV_TYPE>(index) ) { case RWV_TAGLIST: m_TagDefs.DumpKeys(pSrc, "TAG."); return true; default: return false; } return true;*/ EXC_CATCH; EXC_DEBUG_START; g_Log.EventDebug("command '%s' args '%s' [%p]/n", s.GetKey(), s.GetArgRaw(), static_cast<void *>(pSrc)); EXC_DEBUG_END; return false;}
开发者ID:bucketyied,项目名称:Source,代码行数:34,
示例9: ADDTOCALLSTACKbool CRegionResourceDef::r_LoadVal( CScript & s ){ ADDTOCALLSTACK("CRegionResourceDef::r_LoadVal"); EXC_TRY("LoadVal"); // RES_REGIONRESOURCE switch ( FindTableSorted( s.GetKey(), sm_szLoadKeys, COUNTOF( sm_szLoadKeys )-1 )) { case RMC_AMOUNT: // AMOUNT m_Amount.Load( s.GetArgRaw() ); break; case RMC_DEFNAME: // "DEFNAME", return SetResourceName( s.GetArgStr()); case RMC_REAP: // "REAP", m_ReapItem = static_cast<ITEMID_TYPE>(g_Cfg.ResourceGetIndexType( RES_ITEMDEF, s.GetArgStr())); break; case RMC_REAPAMOUNT: m_ReapAmount.Load( s.GetArgRaw() ); break; case RMC_REGEN: // TICK_PER_SEC once found how long to regen this type. m_iRegenerateTime.Load( s.GetArgRaw() ); break; case RMC_SKILL: m_Skill.Load( s.GetArgRaw() ); break; default: return( CResourceDef::r_LoadVal( s )); } return true; EXC_CATCH; EXC_DEBUG_START; EXC_ADD_SCRIPT; EXC_DEBUG_END; return false;}
开发者ID:swak,项目名称:Source,代码行数:35,
示例10: ADDTOCALLSTACKvoid CCharPlayer::r_WriteChar( CChar * pChar, CScript & s ) { ADDTOCALLSTACK("CCharPlayer::r_WriteChar"); UNREFERENCED_PARAMETER(pChar); EXC_TRY("r_WriteChar"); s.WriteKey("ACCOUNT", GetAccount()->GetName()); if ( m_wDeaths ) s.WriteKeyVal( "DEATHS", m_wDeaths ); if ( m_wMurders ) s.WriteKeyVal( "KILLS", m_wMurders ); if ( GetSkillClass()->GetResourceID().GetResIndex() ) s.WriteKey( "SKILLCLASS", GetSkillClass()->GetResourceName()); if ( m_pflag ) s.WriteKeyVal( "PFLAG", m_pflag ); if ( m_speedMode ) s.WriteKeyVal("SPEEDMODE", m_speedMode); if (( GetAccount()->GetResDisp() >= RDS_KR ) && m_bKrToolbarEnabled ) s.WriteKeyVal("KRTOOLBARSTATUS", m_bKrToolbarEnabled); EXC_SET("saving dynamic speech"); if ( m_Speech.GetCount() > 0 ) { CGString sVal; m_Speech.WriteResourceRefList( sVal ); s.WriteKey("DSPEECH", sVal); } EXC_SET("saving profile"); if ( ! m_sProfile.IsEmpty()) { TCHAR szLine[SCRIPT_MAX_LINE_LEN-16]; Str_MakeUnFiltered( szLine, m_sProfile, sizeof(szLine)); s.WriteKey( "PROFILE", szLine ); } EXC_SET("saving stats locks"); for ( int x = 0; x < STAT_BASE_QTY; x++) // Don't write all lock states! { if ( ! m_StatLock[x] ) continue; TCHAR szTemp[128]; sprintf( szTemp, "StatLock[%d]", x ); // smaller storage space. s.WriteKeyVal( szTemp, m_StatLock[x] ); } EXC_SET("saving skill locks"); for ( size_t j = 0; j < g_Cfg.m_iMaxSkill; j++ ) // Don't write all lock states! { ASSERT(j < COUNTOF(m_SkillLock)); if ( ! m_SkillLock[j] ) continue; TCHAR szTemp[128]; sprintf( szTemp, "SkillLock[%" FMTSIZE_T "]", j ); // smaller storage space. s.WriteKeyVal( szTemp, m_SkillLock[j] ); } EXC_CATCH;}
开发者ID:DarkLotus,项目名称:Source,代码行数:59,
示例11: ADDTOCALLSTACKbool CContainer::r_WriteValContainer(LPCTSTR pszKey, CGString & sVal, CTextConsole *pSrc){ ADDTOCALLSTACK("CContainer::r_WriteValContainer"); EXC_TRY("WriteVal"); static LPCTSTR const sm_szParams[] = { "count", "fcount", "rescount", "restest" }; int i = FindTableHeadSorted(pszKey, sm_szParams, COUNTOF(sm_szParams)); if ( i < 0 ) return false; LPCTSTR pKey = pszKey + strlen(sm_szParams[i]); SKIP_SEPARATORS(pKey); switch ( i ) { case 0: // count { int iTotal = 0; for ( CItem* pItem = GetContentHead(); pItem != NULL; pItem = pItem->GetNext() ) iTotal++; sVal.FormatVal(iTotal); } break; case 1: // fcount sVal.FormatVal(ContentCountAll()); break; case 2: // rescount sVal.FormatVal(*pKey ? ContentCount(g_Cfg.ResourceGetID(RES_ITEMDEF, pKey)) : GetCount()); break; case 3: // restest { CResourceQtyArray Resources; sVal.FormatVal(Resources.Load(pKey) ? ResourceConsume(&Resources, 1, true) : 0); } break; default: return false; } return true; EXC_CATCH; EXC_DEBUG_START; EXC_ADD_KEYRET(pSrc); EXC_DEBUG_END; return false;}
开发者ID:greeduomacro,项目名称:Source,代码行数:56,
示例12: ADDTOCALLSTACKbool CClient::addRelay( const CServerDef * pServ ){ ADDTOCALLSTACK("CClient::addRelay"); EXC_TRY("addRelay"); // Tell the client to play on this server. if ( !pServ ) return false; CSocketAddressIP ipAddr = pServ->m_ip; if ( ipAddr.IsLocalAddr()) // local server address not yet filled in. { ipAddr = m_net->m_socket.GetSockName(); DEBUG_MSG(( "%x:Login_Relay to %s/n", GetSocketID(), ipAddr.GetAddrStr() )); } if ( GetPeer().IsLocalAddr() || GetPeer().IsSameIP( ipAddr )) // weird problem with client relaying back to self. { DEBUG_MSG(( "%x:Login_Relay loopback to server %s/n", GetSocketID(), ipAddr.GetAddrStr() )); ipAddr.SetAddrIP( SOCKET_LOCAL_ADDRESS ); } EXC_SET("customer id"); dword dwAddr = ipAddr.GetAddrIP(); dword dwCustomerId = 0x7f000001; if ( g_Cfg.m_fUseAuthID ) { CSString sCustomerID(pServ->GetName()); sCustomerID.Add(GetAccount()->GetName()); dwCustomerId = z_crc32(0L, Z_NULL, 0); dwCustomerId = z_crc32(dwCustomerId, reinterpret_cast<const z_Bytef *>(sCustomerID.GetPtr()), (z_uInt)sCustomerID.GetLength()); GetAccount()->m_TagDefs.SetNum("customerid", dwCustomerId); } DEBUG_MSG(( "%x:Login_Relay to server %s with AuthId %u/n", GetSocketID(), ipAddr.GetAddrStr(), dwCustomerId )); EXC_SET("server relay packet"); new PacketServerRelay(this, dwAddr, pServ->m_ip.GetPort(), dwCustomerId); m_Targ_Mode = CLIMODE_SETUP_RELAY; return true; EXC_CATCH; EXC_DEBUG_START; g_Log.EventDebug("account '%s'/n", GetAccount() ? GetAccount()->GetName() : ""); EXC_DEBUG_END; return false;}
开发者ID:nefthon,项目名称:Source,代码行数:51,
示例13: ADDTOCALLSTACKbool CScript::FindNextSection(){ ADDTOCALLSTACK("CScript::FindNextSection"); EXC_TRY("FindNextSection"); // RETURN: false = EOF. if ( m_fSectionHead ) // we have read a section already., (not at the start) { // Start from the previous line. It was the line that ended the last read. m_pszKey = GetKeyBuffer(); ASSERT(m_pszKey); m_fSectionHead = false; if ( m_pszKey[0] == '[' ) goto foundit; } for (;;) { if ( !ReadTextLine(true) ) { m_lSectionData = GetPosition(); return( false ); } if ( m_pszKey[0] == '[' ) break; }foundit: // Parse up the section name. m_pszKey++; size_t len = strlen( m_pszKey ); for ( size_t i = 0; i < len; i++ ) { if ( m_pszKey[i] == ']' ) { m_pszKey[i] = '/0'; break; } } m_lSectionData = GetPosition(); if ( IsSectionType( "EOF" )) return( false ); Str_Parse( m_pszKey, &m_pszArg ); return true; EXC_CATCH; return false;}
开发者ID:DarkLotus,项目名称:Source,代码行数:49,
示例14: Sphere_MainMonitorLoopstatic void Sphere_MainMonitorLoop(){ const char *m_sClassName = "Sphere"; // Just make sure the main loop is alive every so often. // This should be the parent thread. try to restart it if it is not. while ( ! g_Serv.m_iExitFlag ) { EXC_TRY("MainMonitorLoop"); if ( g_Cfg.m_iFreezeRestartTime <= 0 ) { DEBUG_ERR(("Freeze Restart Time cannot be cleared at run time/n")); g_Cfg.m_iFreezeRestartTime = 10; } EXC_SET("Sleep"); // only sleep 1 second at a time, to avoid getting stuck here when closing // down with large m_iFreezeRestartTime values set for (int i = 0; i < g_Cfg.m_iFreezeRestartTime; ++i) { if ( g_Serv.m_iExitFlag ) break;#ifdef _WIN32 NTWindow_OnTick(1000);#else Sleep(1000);#endif } EXC_SET("Checks"); // Don't look for freezing when doing certain things. if ( g_Serv.IsLoading() || ! g_Cfg.m_fSecure || g_Serv.IsValidBusy() ) continue; EXC_SET("Check Stuck");#ifndef _DEBUG if (g_Main.checkStuck() == true) g_Log.Event(LOGL_CRIT, "'%s' thread hang, restarting.../n", g_Main.getName());#endif EXC_CATCH; EXC_DEBUG_START; EXC_DEBUG_END; }}
开发者ID:roberpot,项目名称:Source,代码行数:47,
示例15: Sphere_OnTickint Sphere_OnTick(){ // Give the world (CMainTask) a single tick. RETURN: 0 = everything is fine. const char *m_sClassName = "Sphere"; EXC_TRY("Tick");#ifdef _WIN32 EXC_SET("service"); g_Service.OnTick();#endif EXC_SET("ships_tick"); g_Serv.ShipTimers_Tick(); EXC_SET("world"); g_World.OnTick(); // process incoming data EXC_SET("network-in");#ifndef _MTNETWORK g_NetworkIn.tick();#else g_NetworkManager.processAllInput();#endif EXC_SET("server"); g_Serv.OnTick(); // push outgoing data#ifndef _MTNETWORK if (g_NetworkOut.isActive() == false) { EXC_SET("network-out"); g_NetworkOut.tick(); }#else EXC_SET("network-tick"); g_NetworkManager.tick(); EXC_SET("network-out"); g_NetworkManager.processAllOutput();#endif EXC_CATCH; EXC_DEBUG_START; EXC_DEBUG_END; return g_Serv.m_iExitFlag;}
开发者ID:roberpot,项目名称:Source,代码行数:47,
示例16: ADDTOCALLSTACKbool CPartyDef::r_LoadVal( CScript & s ){ ADDTOCALLSTACK("CPartyDef::r_LoadVal"); EXC_TRY("LoadVal"); LPCTSTR pszKey = s.GetKey(); int index = FindTableHeadSorted(pszKey, sm_szLoadKeys, COUNTOF(sm_szLoadKeys)-1); switch ( index ) { case PDC_SPEECHFILTER: { if ( !s.HasArgs() ) this->m_pSpeechFunction.Empty(); else { LPCTSTR pszArg = s.GetArgStr(); CResourceLink * m_pTestEvent = dynamic_cast<CResourceLink *>( g_Cfg.ResourceGetDefByName( RES_FUNCTION, pszArg ) ); if ( m_pTestEvent == NULL ) return( false ); this->m_pSpeechFunction.Format("%s", pszArg); } } break; case PDC_TAG0: case PDC_TAG: { bool fQuoted = false; pszKey = pszKey + ((index == PDC_TAG0) ? 5 : 4); m_TagDefs.SetStr( pszKey, fQuoted, s.GetArgStr( &fQuoted ), (index == PDC_TAG0) ); } break; default: return false; } return true; EXC_CATCH; EXC_DEBUG_START; EXC_ADD_SCRIPT; EXC_DEBUG_END; return false;}
开发者ID:roberpot,项目名称:Source,代码行数:46,
示例17: ADDTOCALLSTACKbool CItemSpawn::r_LoadVal(CScript & s){ ADDTOCALLSTACK("CitemSpawn:r_LoadVal"); EXC_TRY("LoadVal"); if (g_Serv.IsLoading()) { if (!strnicmp(s.GetKey(), "more2", 5)) //More2 shouldn't be loaded as it's being set with ADDOBJ return true; } int iCmd = FindTableSorted(s.GetKey(), sm_szLoadKeys, COUNTOF(sm_szLoadKeys) - 1); if (iCmd < 0) return CItem::r_LoadVal(s); switch (iCmd) { case ISPW_ADDOBJ: { CGrayUID uid = static_cast<CGrayUID>(s.GetArgVal()); if ( uid.ObjFind() ) AddObj(uid); return true; } case ISPW_DELOBJ: { CGrayUID uid = static_cast<CGrayUID>(s.GetArgVal()); if (uid.ObjFind()) DelObj(uid); return true; } case ISPW_RESET: KillChildren(); return true; case ISPW_START: SetTimeout(0); return true; case ISPW_STOP: KillChildren(); SetTimeout(-1); return true; default: break; } EXC_CATCH; return false;}
开发者ID:leandrorenato,项目名称:Source,代码行数:46,
示例18: EXC_TRYbool CItemMulti::r_LoadVal( CScript & s ){ LOCKDATA; EXC_TRY(("r_LoadVal('%s %s')", s.GetKey(), s.GetArgStr())); if ( s.IsKeyHead( "REGION.", 7 )) { if ( ! IsTopLevel()) { MoveTo( GetTopPoint()); // Put item on the ground here. } ASSERT( m_pRegion ); CScript script( s.GetKey()+7, s.GetArgStr()); return( m_pRegion->r_LoadVal( script ) ); } return CItem::r_LoadVal(s); EXC_CATCH("CItemMulti"); return false;}
开发者ID:GenerationOfWorlds,项目名称:Sphere,代码行数:18,
注:本文中的EXC_TRY函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 C++ EXDLL_INIT函数代码示例 C++ EXCLOG函数代码示例 |