您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ Guard函数代码示例

51自学网 2021-06-01 21:19:46
  C++
这篇教程C++ Guard函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中Guard函数的典型用法代码示例。如果您正苦于以下问题:C++ Guard函数的具体用法?C++ Guard怎么用?C++ Guard使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了Guard函数的22个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: Guard

void SGameplayTagWidget::CreateNewGameplayTag(){	// Only support adding tags via ini file	if (UGameplayTagsManager::ShouldImportTagsFromINI() == false)	{		return;	}	FString str = NewTagTextBox->GetText().ToString();	if (str.IsEmpty())	{		return;	}	// set bIsAddingNewTag, this guards against the window closing when it loses focus due to source control checking out a file	TGuardValue<bool>	Guard(bIsAddingNewTag, true);	UGameplayTagsManager::AddNewGameplayTagToINI(str);	NewTagTextBox->SetText(FText::GetEmpty());	IGameplayTagsModule::Get().GetGameplayTagsManager().GetFilteredGameplayRootTags(RootFilterString, TagItems);	TagTreeWidget->RequestTreeRefresh();	auto node = IGameplayTagsModule::Get().GetGameplayTagsManager().FindTagNode(FName(*str));	if (node.IsValid())	{		OnTagChecked(node);	}	// Filter on the new tag	SearchTagBox->SetText(FText::FromString(str));}
开发者ID:frobro98,项目名称:UnrealSource,代码行数:33,


示例2: Guard

void CMainGui::ChangeWinSize (long width, long height) {	CGuard Guard(m_CS);	WINDOWPLACEMENT wndpl;    RECT rc1, swrect;	wndpl.length = sizeof(wndpl);	GetWindowPlacement( m_hMainWindow, &wndpl);	if ( (HWND)m_hStatusWnd != NULL )     {		GetClientRect( (HWND)m_hStatusWnd, &swrect );	    SetRect( &rc1, 0, 0, width, height + swrect.bottom );	}     else     {	    SetRect( &rc1, 0, 0, width, height );	}    AdjustWindowRectEx( &rc1,GetWindowLong( m_hMainWindow, GWL_STYLE ),		GetMenu( m_hMainWindow ) != NULL, GetWindowLong( m_hMainWindow, GWL_EXSTYLE ) );     MoveWindow( m_hMainWindow, wndpl.rcNormalPosition.left, wndpl.rcNormalPosition.top, 		rc1.right - rc1.left, rc1.bottom - rc1.top, TRUE );}
开发者ID:BenjaminSiskoo,项目名称:project64,代码行数:26,


示例3: Guard

UnicodeString TConfiguration::GetFileFileInfoString(const UnicodeString & AKey,  const UnicodeString & AFileName, bool AllowEmpty) const{  TGuard Guard(FCriticalSection);  UnicodeString Result;  void * Info = GetFileApplicationInfo(AFileName);  SCOPE_EXIT  {    if (!AFileName.IsEmpty() && Info)    {      FreeFileInfo(Info);    }  };  if ((Info != nullptr) && (GetTranslationCount(Info) > 0))  {    TTranslation Translation = GetTranslation(Info, 0);    try    {      Result = ::GetFileInfoString(Info, Translation, AKey, AllowEmpty);    }    catch (const std::exception & e)    {      (void)e;      DEBUG_PRINTF("Error: %s", ::MB2W(e.what()).c_str());      Result.Clear();    }  }  else  {    assert(!AFileName.IsEmpty());  }  return Result;}
开发者ID:kocicjelena,项目名称:Far-NetBox,代码行数:34,


示例4: Guard

ULONG  CIniFileBase::GetString  ( LPCTSTR lpSectionName, LPCTSTR lpKeyName, LPCTSTR lpDefault, LPTSTR lpReturnedString, ULONG nSize ){	CGuard Guard(m_CS);	std::string strSection;	if (lpSectionName == NULL || _tcslen(lpSectionName) == 0)	{		strSection = "default";	}	else	{		strSection = lpSectionName;	}	if (m_File.IsOpen() && MoveToSectionNameData(strSection.c_str(),true)) 	{		KeyValueList::iterator iter = m_CurrentSectionData.find(lpKeyName);		if (iter != m_CurrentSectionData.end())		{			_tcsncpy(lpReturnedString,iter->second.c_str(),nSize - 1);			lpReturnedString[nSize - 1] = 0;			return (ULONG)_tcslen(lpReturnedString);		}	}	_tcsncpy(lpReturnedString,lpDefault,nSize - 1);	lpReturnedString[nSize - 1] = 0;	return (ULONG)_tcslen(lpReturnedString);}
开发者ID:BenjaminSiskoo,项目名称:project64,代码行数:29,


示例5: Guard

IDF_ERRORCODE iDFPluginMgr::run_all_plugins(){    idf::LockGuard<idf::MutexLock> Guard(this->lock);        std::vector<iDFPluginWrapper*>::iterator begin=this->plugins.begin();    std::vector<iDFPluginWrapper*>::iterator end = this->plugins.end();        for(; begin!=end; begin++)    {        iDFPluginWrapper * plugin = *begin;        if(!plugin->is_valid() || plugin->is_run())        {            printf("skip the plugin, %d", plugin->get_plugin_id());            continue;        }                IDF_ERRORCODE error_code = plugin->init() || plugin->start();        if(IDF_IS_ERROR(error_code))        {            printf("plugin failed to start it~, skip it~, error code is %lld", error_code);            continue;        }    }        return IDF_SUCCESS;}
开发者ID:dongAxis,项目名称:iDefense,代码行数:26,


示例6: Guard

//---------------------------------------------------------------------------UnicodeString TConfiguration::GetFileInfoString(const UnicodeString & Key,  const UnicodeString & FileName) const{  TGuard Guard(FCriticalSection);  UnicodeString Result;  void * Info = GetFileApplicationInfo(FileName);  SCOPE_EXIT  {    if (!FileName.IsEmpty() && Info)    {      FreeFileInfo(Info);    }  };  {    if ((Info != nullptr) && (GetTranslationCount(Info) > 0))    {      TTranslation Translation = GetTranslation(Info, 0);      try      {        Result = ::GetFileInfoString(Info, Translation, Key);      }      catch (const std::exception & e)      {        (void)e;        DEBUG_PRINTF(L"Error: %s", MB2W(e.what()).c_str());        Result = L"";      }    }  }  return Result;}
开发者ID:CyberShadow,项目名称:Far-NetBox,代码行数:33,


示例7: NOW

RafLinkedList* AccountMgr::GetRAFAccounts(uint32 accid, bool referred){    RafLinkedMap::iterator itr = mRAFLinkedMap.find(std::pair<uint32,bool>(accid, referred));    if (itr == mRAFLinkedMap.end())    {        QueryResult* result;        if (referred)            result = LoginDatabase.PQuery("SELECT `friend_id` FROM `account_friends` WHERE `id` = %u AND `expire_date` > NOW() LIMIT %u", accid, sWorld.getConfig(CONFIG_UINT32_RAF_MAXREFERERS));        else            result = LoginDatabase.PQuery("SELECT `id` FROM `account_friends` WHERE `friend_id` = %u AND `expire_date` > NOW() LIMIT %u", accid, sWorld.getConfig(CONFIG_UINT32_RAF_MAXREFERALS));        RafLinkedList acclist;        if (result)        {            do            {                Field* fields = result->Fetch();                uint32 refaccid = fields[0].GetUInt32();                acclist.push_back(refaccid);            }            while (result->NextRow());            delete result;        }        ReadGuard Guard(GetLock());        mRAFLinkedMap.insert(RafLinkedMap::value_type(std::pair<uint32,bool>(accid, referred), acclist));        itr = mRAFLinkedMap.find(std::pair<uint32,bool>(accid, referred));    }    return &itr->second;}
开发者ID:AnthoDevMoP,项目名称:mangos4,代码行数:33,


示例8: GetPlayerDataCache

void AccountMgr::ClearPlayerDataCache(ObjectGuid guid){    if (!guid || !guid.IsPlayer())        return;    PlayerDataCache const* cache = GetPlayerDataCache(guid, false);    if (cache)    {        uint32 accId = cache->account;        WriteGuard Guard(GetLock());        PlayerDataCacheMap::iterator itr = mPlayerDataCacheMap.find(guid);        if (itr != mPlayerDataCacheMap.end())            mPlayerDataCacheMap.erase(itr);        RafLinkedMap::iterator itr1 = mRAFLinkedMap.find(std::pair<uint32,bool>(accId, true));        if (itr1 != mRAFLinkedMap.end())            mRAFLinkedMap.erase(itr1);        itr1 = mRAFLinkedMap.find(std::pair<uint32,bool>(accId, false));        if (itr1 != mRAFLinkedMap.end())            mRAFLinkedMap.erase(itr1);    }}
开发者ID:AnthoDevMoP,项目名称:mangos4,代码行数:25,


示例9: Guard

void CTraceLog::WriteTrace ( TraceType Type, LPCTSTR Message){	CGuard Guard(m_CS);	if (Type != TraceNone)	{		bool WriteToLog = false;		for (int i = 0; i < (int)m_Modules.size(); i++ )		{			if ((m_Modules[i]->GetTraceLevel() & Type) != 0) 			{				WriteToLog = true;				break;			}		}		if (!WriteToLog) { return; }	}	if ((Type & TraceNoHeader) == 0)	{		TCHAR pBuffer[300];		int nPos = 0;		SYSTEMTIME sysTime;		::GetLocalTime(&sysTime);		nPos = _stprintf( pBuffer, _T("%04d/%02d/%02d %02d:%02d:%02d.%03d %05d: "), sysTime.wYear,			sysTime.wMonth,sysTime.wDay,sysTime.wHour,sysTime.wMinute,sysTime.wSecond,sysTime.wMilliseconds,			::GetCurrentThreadId()		);		// show the debug level		if (Type == TraceNone) { nPos += _stprintf(pBuffer+nPos,_T("%s"),_T("None   : ")); }		else if ((Type & TraceError)     != 0) { nPos += _stprintf(pBuffer+nPos,_T("%s"),_T("Error  : ")); }		else if ((Type & TraceSettings)  != 0) { nPos += _stprintf(pBuffer+nPos,_T("%s"),_T("Setting: ")); }		else if ((Type & TraceGfxPlugin) != 0) { nPos += _stprintf(pBuffer+nPos,_T("%s"),_T("Gfx    : ")); }		else if ((Type & TraceDebug)     != 0) { nPos += _stprintf(pBuffer+nPos,_T("%s"),_T("Debug  : ")); }		else if ((Type & TraceRecompiler)!= 0) { nPos += _stprintf(pBuffer+nPos,_T("%s"),_T("Recomp : ")); }		else if ((Type & TraceRSP       )!= 0) { nPos += _stprintf(pBuffer+nPos,_T("%s"),_T("RSP    : ")); }		else if ((Type & TraceTLB       )!= 0) { nPos += _stprintf(pBuffer+nPos,_T("%s"),_T("TLB    : ")); }		else if ((Type & TraceValidate  )!= 0) { nPos += _stprintf(pBuffer+nPos,_T("%s"),_T("Valid  : ")); }		else if ((Type & TraceAudio     )!= 0) { nPos += _stprintf(pBuffer+nPos,_T("%s"),_T("Audio  : ")); }		else { nPos += _stprintf(pBuffer+nPos,_T("%s"),_T("Unknown: ")); }		for (int i = 0; i < (int)m_Modules.size(); i++ )		{			if ((m_Modules[i]->GetTraceLevel() & Type) != 0) 			{				m_Modules[i]->Write(pBuffer, false);			}		}	}	for (int i = 0; i < (int)m_Modules.size(); i++ )	{		if ((m_Modules[i]->GetTraceLevel() & Type) != 0) 		{			m_Modules[i]->Write(Message, true);		}	}}
开发者ID:BenjaminSiskoo,项目名称:project64,代码行数:60,


示例10: header

bool WorldSocket::SendPacket(const WorldPacket& pct){    if (IsClosed())        return false;    // Dump outgoing packet.    sLog.outWorldPacketDump(native_handle(), pct.GetOpcode(), pct.GetOpcodeName(), &pct, false);    ServerPktHeader header(pct.size() + 2, pct.GetOpcode());    crypt_.EncryptSend((uint8*) header.header, header.getHeaderLength());    GuardType Guard(out_buffer_lock_);    if (out_buffer_->space() >= pct.size() + header.getHeaderLength())    {        // Put the packet on the buffer.        if (!out_buffer_->Write(header.header, header.getHeaderLength()))            MANGOS_ASSERT(false);        if (!pct.empty() && !out_buffer_->Write(pct.contents(), pct.size()))            MANGOS_ASSERT(false);    }    else    {        // Enqueue the packet.        throw std::exception("network write buffer is too small to accommodate packet");    }    StartAsyncSend();    return true;}
开发者ID:Havoc,项目名称:mangos-boost,代码行数:32,


示例11: AppendExceptionStackTraceAndForget

//---------------------------------------------------------------------------bool __fastcall AppendExceptionStackTraceAndForget(TStrings *& MoreMessages){  bool Result = false;  TGuard Guard(StackTraceCriticalSection.get());  TStackTraceMap::iterator Iterator = StackTraceMap.find(GetCurrentThreadId());  if (Iterator != StackTraceMap.end())  {    std::unique_ptr<TStrings> OwnedMoreMessages;    if (MoreMessages == NULL)    {      OwnedMoreMessages.reset(new TStringList());      MoreMessages = OwnedMoreMessages.get();      Result = true;    }    if (!MoreMessages->Text.IsEmpty())    {      MoreMessages->Text = MoreMessages->Text + "/n";    }    MoreMessages->Text = MoreMessages->Text + LoadStr(STACK_TRACE) + "/n";    MoreMessages->AddStrings(Iterator->second);    delete Iterator->second;    StackTraceMap.erase(Iterator);    OwnedMoreMessages.release();  }  return Result;}
开发者ID:mpmartin8080,项目名称:winscp,代码行数:31,


示例12: DEBUG_FILTER_LOG

// call this method onlyvoid TerrainInfo::CleanUpGrids(uint32 const diff){    for (int y = 0; y < MAX_NUMBER_OF_GRIDS; ++y)    {        for (int x = 0; x < MAX_NUMBER_OF_GRIDS; ++x)        {            // delete those GridMap objects which have refcount == 0            if (m_GridMaps[x][y] && m_GridMaps[x][y].count() == 0)            {                DEBUG_FILTER_LOG(LOG_FILTER_MAP_LOADING,"TerrainInfo::CleanUpGrids unload grid map:%u x:%d y:%d", GetMapId(), x, y);                WriteGuard Guard(GetLock(), true);                GridMapPtr tmpPtr = m_GridMaps[x][y];                m_GridMaps[x][y] = GridMapPtr();                // unload VMAPS...                VMAP::VMapFactory::createOrGetVMapManager()->unloadMap(m_mapId, x, y);                // unload mmap...                MMAP::MMapFactory::createOrGetMMapManager()->unloadMap(m_mapId, x, y);                // tmpPtr be auto-erased after cycle end            }        }    }}
开发者ID:Jojo2323,项目名称:mangos3,代码行数:27,


示例13: getEndPosition

bool PathFinder::calculate(float destX, float destY, float destZ, bool forceDest){    Vector3 oldDest = getEndPosition();    Vector3 dest(destX, destY, destZ);    setEndPosition(dest);    float x, y, z;    m_sourceUnit->GetPosition(x, y, z);    Vector3 start(x, y, z);    setStartPosition(start);    m_forceDestination = forceDest;    DEBUG_FILTER_LOG(LOG_FILTER_PATHFINDING, "++ PathFinder::calculate() for %u /n", m_sourceUnit->GetGUIDLow());    // make sure navMesh works - we can run on map w/o mmap    // check if the start and end point have a .mmtile loaded (can we pass via not loaded tile on the way?)    if (!m_navMesh || !m_navMeshQuery || m_sourceUnit->hasUnitState(UNIT_STAT_IGNORE_PATHFINDING) ||        !HaveTile(start) || !HaveTile(dest) || (m_sourceUnit->GetTypeId() == TYPEID_UNIT && ((Creature*)m_sourceUnit)->IsLevitating()))    {        BuildShortcut();        m_type = PathType(PATHFIND_NORMAL | PATHFIND_NOT_USING_PATH);        return true;    }    updateFilter();    {        ReadGuard Guard(MMAP::MMapFactory::createOrGetMMapManager()->GetLock(m_sourceUnit->GetMapId()));        BuildPolyPath(start, dest);    }    return true;}
开发者ID:BACKUPLIB,项目名称:Infinity_MaNGOS,代码行数:33,


示例14: DebugAssert

void TSessionLog::Add(TLogLineType Type, UnicodeString ALine){  DebugAssert(FConfiguration);  if (GetLogging())  {    try    {      if (FParent != nullptr)      {        DoAdd(Type, ALine, nb::bind(&TSessionLog::DoAddToParent, this));      }      else      {        TGuard Guard(FCriticalSection);        DoAdd(Type, ALine, nb::bind(&TSessionLog::DoAddToSelf, this));      }    }    catch (Exception &E)    {      // We failed logging, turn it off and notify user.      FConfiguration->SetLogging(false);      try      {        throw ExtException(&E, LoadStr(LOG_GEN_ERROR));      }      catch (Exception &E2)      {        AddException(&E2);        FUI->HandleExtendedException(&E2);      }    }  }}
开发者ID:michaellukashov,项目名称:Far-NetBox,代码行数:34,


示例15: ABILITY_LOG

void FAggregator::BroadcastOnDirty(){	// If we are batching on Dirty calls (and we actually have dependents registered with us) then early out.	if (FScopedAggregatorOnDirtyBatch::GlobalBatchCount > 0 && (Dependents.Num() > 0 || OnDirty.IsBound()))	{		FScopedAggregatorOnDirtyBatch::DirtyAggregators.Add(this);		return;	}	if (IsBroadcastingDirty)	{		// Apologies for the vague warning but its very hard from this spot to call out what data has caused this. If this frequently happens we should improve this.		ABILITY_LOG(Warning, TEXT("FAggregator detected cyclic attribute dependencies. We are skipping a recursive dirty call. Its possible the resulting attribute values are not what you expect!"));		return;	}	TGuardValue<bool>	Guard(IsBroadcastingDirty, true);		OnDirty.Broadcast(this);	TArray<FActiveGameplayEffectHandle>	ValidDependents;	for (FActiveGameplayEffectHandle Handle : Dependents)	{		UAbilitySystemComponent* ASC = Handle.GetOwningAbilitySystemComponent();		if (ASC)		{			ASC->OnMagnitudeDependencyChange(Handle, this);			ValidDependents.Add(Handle);		}	}	Dependents = ValidDependents;}
开发者ID:amyvmiwei,项目名称:UnrealEngine4,代码行数:34,


示例16: Guard

bool AuthSocket::send(const char* buf, size_t len){    if (buf == NULL || len == 0)        return true;        GuardType Guard(m_OutBufferLock);        if (m_OutBuffer->space() >= len)    {        // Put the packet on the buffer.        if (m_OutBuffer->copy((char*)buf, len) == -1)        {            MANGOS_ASSERT(false);            return false;        }    }    else    {        // Enqueue the packet.        sLog.outError("network write buffer is too small to accommodate packet. Disconnecting client");                MANGOS_ASSERT(false);        return false;    }        start_async_send();        return true;}
开发者ID:Lillecarl,项目名称:RustEmu-Stable,代码行数:29,


示例17: Guard

void TConfiguration::Default(){  TGuard Guard(FCriticalSection);  FDisablePasswordStoring = false;  FForceBanners = false;  FDisableAcceptingHostKeys = false;  std::unique_ptr<TRegistryStorage> AdminStorage(new TRegistryStorage(GetRegistryStorageKey(), HKEY_LOCAL_MACHINE));  try__finally  {    if (AdminStorage->OpenRootKey(false))    {      LoadAdmin(AdminStorage.get());      AdminStorage->CloseSubKey();    }  }  __finally  {//    delete AdminStorage;  };  SetRandomSeedFile(FDefaultRandomSeedFile);  SetPuttyRegistryStorageKey(OriginalPuttyRegistryStorageKey);  FConfirmOverwriting = true;  FConfirmResume = true;  FAutoReadDirectoryAfterOp = true;  FSessionReopenAuto = 5000;  FSessionReopenBackground = 2000;  FSessionReopenTimeout = 0;  FSessionReopenAutoStall = 60000;  FTunnelLocalPortNumberLow = 50000;  FTunnelLocalPortNumberHigh = 50099;  FCacheDirectoryChangesMaxSize = 100;  FShowFtpWelcomeMessage = false;  FExternalIpAddress.Clear();  FTryFtpWhenSshFails = true;  SetCollectUsage(FDefaultCollectUsage);  FSessionReopenAutoMaximumNumberOfRetries = CONST_DEFAULT_NUMBER_OF_RETRIES;  FDefaultCollectUsage = false;  FLogging = false;  FPermanentLogging = false;  FLogFileName = GetDefaultLogFileName();  FPermanentLogFileName = FLogFileName;  FLogFileAppend = true;  FLogSensitive = false;  FPermanentLogSensitive = FLogSensitive;  FLogWindowLines = 100;  FLogProtocol = 0;  FPermanentLogProtocol = FLogProtocol;  UpdateActualLogProtocol();  FLogActions = false;  FPermanentLogActions = false;  FActionsLogFileName = "%TEMP%" WGOOD_SLASH "&S.xml";  FPermanentActionsLogFileName = FActionsLogFileName;  FProgramIniPathWrittable = -1;  Changed();}
开发者ID:elfmz,项目名称:far2l,代码行数:60,


示例18: DoTrace

void DoTrace(const wchar_t * SourceFile, const wchar_t * Func,             uintptr_t Line, const wchar_t * Message){    if (TracingCriticalSection != nullptr)    {        TTraceInMemory TraceInMemory;        TraceInMemory.Ticks = ::GetTickCount();        TraceInMemory.Thread = ::GetCurrentThreadId();        TraceInMemory.SourceFile = SourceFile;        TraceInMemory.Func = Func;        TraceInMemory.Line = Line;        TraceInMemory.Message = Message;        TGuard Guard(TracingCriticalSection);        if (TracesInMemory.capacity() == 0)        {            TracesInMemory.reserve(100000);            TThreadID ThreadID;            StartThread(nullptr, 0, TraceThreadProc, nullptr, 0, ThreadID);        }        TracesInMemory.push_back(TraceInMemory);    }}
开发者ID:michaellukashov,项目名称:Far-NetBox,代码行数:25,


示例19: GridMapPtr

GridMapPtr TerrainInfo::GetGridMap(uint32 const& x, uint32 const& y){    if (x >= MAX_NUMBER_OF_GRIDS || y >= MAX_NUMBER_OF_GRIDS)        return GridMapPtr();    ReadGuard Guard(GetLock(), true);    return m_GridMaps[x][y];}
开发者ID:Jojo2323,项目名称:mangos3,代码行数:8,


示例20: RenewEvents

void WorldObjectEventProcessor::Update(uint32 p_time, bool force){    if (force)        RenewEvents();    ReadGuard Guard(GetLock());    EventProcessor::Update(p_time);}
开发者ID:klyxmaster,项目名称:mangos,代码行数:8,


示例21: Guard

void CMainGui::BringToTop(void){    CGuard Guard(m_CS);    SetForegroundWindow(m_hMainWindow);    SetFocus(GetDesktopWindow());    Sleep(100);    SetFocus(m_hMainWindow);}
开发者ID:Watilin,项目名称:project64,代码行数:8,


示例22: Guard

void CTraceLog::TraceMessage(uint32_t module, uint8_t severity, const char * file, int line, const char * function, const char * Message){    CGuard Guard(m_CS);    for (uint32_t i = 0, n = m_Modules.size(); i < n; i++)    {        m_Modules[i]->Write(module, severity, file, line, function, Message);    }}
开发者ID:DaMan69,项目名称:project64,代码行数:9,



注:本文中的Guard函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ GuidHigh2TypeId函数代码示例
C++ Gt函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。