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

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

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

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

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

示例1: DYNAMIC_CAST

void TESObjectARMA::GetNodeName(char * dstBuff, TESObjectREFR * refr, TESObjectARMO * armor, float weightOverride){	float weight = 100.0;	TESNPC * npc = DYNAMIC_CAST(refr->baseForm, TESForm, TESNPC);	if(npc && npc->nextTemplate) {		TESNPC * temp = npc->GetRootTemplate();		if(temp) {			weight = temp->weight;		}	}	else		weight = CALL_MEMBER_FN(refr, GetWeight)();	weight /= 100.0;	if(weightOverride >= 0.0) // Determines whether to factor weight into the name, -1 true, 1 false		weight = weightOverride;	weight *= 100.0;		UInt32 sex = npc ? CALL_MEMBER_FN(npc, GetSex)() : 0;	/*sprintf_s(dstBuff, MAX_PATH, "%s (%08X)[%d]/%s (%08X) [%2.0f%%]", 		this->Unk_32(), // I really have no idea why they used a string here for a boolean value, probably legacy code		this->formID,		sex,		armor->Unk_32(), 		armor->formID, 		weight);*/	sprintf_s(dstBuff, MAX_PATH, " (%08X)[%d]/ (%08X) [%2.0f%%]", 		this->formID,		sex,		armor->formID, 		weight);}
开发者ID:RealAntithesis,项目名称:JContainers,代码行数:33,


示例2: CALL_MEMBER_FN

void CPWToolBar::SetupImageList(const GuiRecord *guiInfo,                                GuiRecordGetter GetBM, GuiRecordGetter GetDisBM,                                const int numBMs, const int nImageList){  // See http://www.parashift.com/c++-faq/macro-for-ptr-to-memfn.html#define CALL_MEMBER_FN(object,ptrToMember)  ((object).*(ptrToMember))  const COLORREF crCOLOR_3DFACE = GetSysColor(COLOR_3DFACE);  CBitmap bmNormal, bmDisabled;  for (int i = 0; i < numBMs; i++) {    UINT bmID = CALL_MEMBER_FN(guiInfo[i], GetBM)();    if (bmID == 0)      continue; // skip over separator    BOOL brc = bmNormal.Attach(::LoadImage(::AfxFindResourceHandle(MAKEINTRESOURCE(bmID), RT_BITMAP),                               MAKEINTRESOURCE(bmID), IMAGE_BITMAP, 0, 0,                               (LR_DEFAULTSIZE | LR_CREATEDIBSECTION)));    ASSERT(brc);    SetBitmapBackground(bmNormal, crCOLOR_3DFACE);    m_ImageLists[nImageList].Add(&bmNormal, crCOLOR_3DFACE);    bmNormal.DeleteObject();    if (nImageList != 0) {      bmID = CALL_MEMBER_FN(guiInfo[i], GetDisBM)();      bmDisabled.Attach(::LoadImage(::AfxFindResourceHandle(MAKEINTRESOURCE(bmID), RT_BITMAP),                                    MAKEINTRESOURCE(bmID), IMAGE_BITMAP, 0, 0,                                    (LR_DEFAULTSIZE | LR_CREATEDIBSECTION)));      SetBitmapBackground(bmDisabled, crCOLOR_3DFACE);      m_DisabledImageLists[nImageList - 1].Add(&bmDisabled, crCOLOR_3DFACE);      bmDisabled.DeleteObject();    }  }}
开发者ID:Sp1l,项目名称:pwsafe,代码行数:35,


示例3: UpdateItemAbility

	void UpdateItemAbility(Actor * actor, TESForm* baseForm, BaseExtraList * extraData, bool bLeftHand)	{		if(actor && baseForm) {			if(baseForm->formType == TESObjectWEAP::kTypeID)				CALL_MEMBER_FN(actor, UpdateWeaponAbility)(baseForm, extraData, bLeftHand);			else if(baseForm->formType == TESObjectARMO::kTypeID)				CALL_MEMBER_FN(actor, UpdateArmorAbility)(baseForm, extraData);		}	}
开发者ID:NecroReindeer,项目名称:comp140-api-hacking,代码行数:9,


示例4: CALL_MEMBER_FN

void Script::RunScriptLine(const char * text, TESObjectREFR * object){	ConsoleManager	* consoleManager = ConsoleManager::GetSingleton();	UInt8	scriptBuf[sizeof(Script)];	Script	* script = (Script *)scriptBuf;	CALL_MEMBER_FN(script, Constructor)();	CALL_MEMBER_FN(script, MarkAsTemporary)();	CALL_MEMBER_FN(script, SetText)(text);	CALL_MEMBER_FN(script, Run)(consoleManager->scriptContext, true, object);	CALL_MEMBER_FN(script, Destructor)();}
开发者ID:ashmedai,项目名称:NVSE,代码行数:13,


示例5: CreateEnchantment

	void CreateEnchantment(TESForm* baseForm, BaseExtraList * extraData, float maxCharge, VMArray<EffectSetting*> effects, VMArray<float> magnitudes, VMArray<UInt32> areas, VMArray<UInt32> durations)	{		if(baseForm && (baseForm->formType == TESObjectWEAP::kTypeID || baseForm->formType == TESObjectARMO::kTypeID)) {			EnchantmentItem * enchantment = NULL;			if(effects.Length() > 0 && magnitudes.Length() == effects.Length() && areas.Length() == effects.Length() && durations.Length() == effects.Length()) {				tArray<MagicItem::EffectItem> effectItems;				effectItems.Allocate(effects.Length());				UInt32 j = 0;				for(UInt32 i = 0; i < effects.Length(); i++) {					EffectSetting * magicEffect = NULL;					effects.Get(&magicEffect, i);					if(magicEffect) { // Only add effects that actually exist						magnitudes.Get(&effectItems[j].magnitude, i);						areas.Get(&effectItems[j].area, i);						durations.Get(&effectItems[j].duration, i);						effectItems[j].mgef = magicEffect;						j++;					}				}				effectItems.count = j; // Set count to existing count				if(baseForm->formType == TESObjectWEAP::kTypeID)					enchantment = CALL_MEMBER_FN(PersistentFormManager::GetSingleton(), CreateOffensiveEnchantment)(&effectItems);				else					enchantment = CALL_MEMBER_FN(PersistentFormManager::GetSingleton(), CreateDefensiveEnchantment)(&effectItems);				FormHeap_Free(effectItems.arr.entries);			}			if(enchantment) {				if(maxCharge > 0xFFFF) // Charge exceeds uint16 clip it					maxCharge = 0xFFFF;				ExtraEnchantment* extraEnchant = static_cast<ExtraEnchantment*>(extraData->GetByType(kExtraData_Enchantment));				if(extraEnchant) {					PersistentFormManager::GetSingleton()->DecRefEnchantment(extraEnchant->enchant);					extraEnchant->enchant = enchantment;					PersistentFormManager::GetSingleton()->IncRefEnchantment(extraEnchant->enchant);					extraEnchant->maxCharge = (UInt16)maxCharge;				} else {					ExtraEnchantment* extraEnchant = ExtraEnchantment::Create();					extraEnchant->enchant = enchantment;					extraEnchant->maxCharge = (UInt16)maxCharge;					extraData->Add(kExtraData_Enchantment, extraEnchant);				}			}		}	}
开发者ID:NecroReindeer,项目名称:comp140-api-hacking,代码行数:50,


示例6: UpdateItem3D

void UpdateItem3D(const FxDelegateArgs & params){	if(params.menu) {		UInt32 formId = (UInt32)params.args->GetNumber();		if(formId) {			TESForm * form = LookupFormByID(formId);			if(form) {				CALL_MEMBER_FN(Inventory3DManager::GetSingleton(), UpdateMagic3D)(form, 0);			}		} else {			CALL_MEMBER_FN(Inventory3DManager::GetSingleton(), Clear3D)();		}	}}
开发者ID:RealAntithesis,项目名称:JContainers,代码行数:14,


示例7: CreateFormInstance

TESForm * TESForm::CloneForm(bool persist) const{	TESForm	* result = CreateFormInstance(typeID);	if(result)	{		result->CopyFrom(this);		CALL_MEMBER_FN(DataHandler::Get(), DoAddForm)(result);		if(persist)		{			CALL_MEMBER_FN(TESSaveLoadGame::Get(), AddCreatedForm)(result);		}	}	return result;}
开发者ID:ashmedai,项目名称:NVSE,代码行数:16,


示例8: out

voidslice_set::write_general(const string& file, const string& title,   print_fn fun, vm::all *all) const{   ofstream out(file.c_str(), ios_base::out | ios_base::trunc);      write_header(out, title, all);      vector<iter> iters(all->NUM_THREADS, iter());	 assert(slices.size() == all->NUM_THREADS);   for(size_t i(0); i < all->NUM_THREADS; ++i) {		  assert(num_slices == slices[i].size());      iters[i] = slices[i].begin();	 }         for(size_t slice(0); slice < num_slices; ++slice) {      csv_line line;      line << to_string<unsigned long>(slice * SLICE_PERIOD);      for(size_t proc(0); proc < all->NUM_THREADS; ++proc) {         assert(iters[proc] != slices[proc].end());         const statistics::slice& sl(*iters[proc]);         CALL_MEMBER_FN(sl, fun)(line);         iters[proc]++;      }      line.print(out);   }}
开发者ID:ankitC,项目名称:meld,代码行数:29,


示例9: Cmd_SetCellResetHours_Execute

static bool Cmd_SetCellResetHours_Execute(COMMAND_ARGS){	// specifies # of hours from now until cell reset	*result = 0;	TESObjectCELL* cell = NULL;	UInt32 numHours = -1;	if (ExtractArgs(PASS_EXTRACT_ARGS, &cell, &numHours) && cell && numHours != -1)	{		if (cell->IsInterior() && cell != (*g_thePlayer)->parentCell)		{			SInt32 iHoursToRespawn = TimeGlobals::HoursToRespawnCell();			SInt32 iHoursPassed = TimeGlobals::GameHoursPassed();			SInt32 detachTime = iHoursPassed + numHours - iHoursToRespawn;			if (detachTime < iHoursPassed)			{				*result = 1;				CALL_MEMBER_FN(cell, SetDetachTime)(detachTime);				if (IsConsoleMode())					Console_Print("Current hours passed :%d Detach time: %d", iHoursPassed, detachTime);			}			else if (IsConsoleMode())				Console_Print("Detach time %d cannot be greater than current hours passed %d", detachTime, iHoursPassed);		}	}	return true;}
开发者ID:neomonkeus,项目名称:Oblivion-Script-Extender,代码行数:27,


示例10: _MESSAGE

bool BGSSaveLoadManager::LoadGame_Hook(const char * saveName, bool unk1){#ifdef DEBUG	_MESSAGE("Executing BGSSaveLoadManager::LoadGame_Hook. saveName: %s", saveName);#endif  FriendLink::PreLoadGame();	g_loadGameLock.Enter();	Serialization::SetSaveName(saveName);	PluginManager::Dispatch_Message(0, SKSEMessagingInterface::kMessage_PreLoadGame, (void*)saveName, strlen(saveName), NULL);		bool result = CALL_MEMBER_FN(this, LoadGame_HookTarget)(saveName, unk1);	PluginManager::Dispatch_Message(0, SKSEMessagingInterface::kMessage_PostLoadGame, (void*)result, 1, NULL);	Serialization::SetSaveName(NULL);	g_loadGameLock.Leave();		// Clear invalid handles in OnUpdate event registration list	UInt32	enableClearRegs = 0;	if (GetConfigOption_UInt32("General", "ClearInvalidRegistrations", &enableClearRegs))	{		if (enableClearRegs)		{			UInt32 count = (*g_skyrimVM)->ClearInvalidRegistrations();			if (count > 0)				_MESSAGE("ClearInvalidRegistrations: Removed %d invalid OnUpdate registration(s)", count);		}	}#ifdef DEBUG	_MESSAGE("Executed BGSSaveLoadManager::LoadGame_Hook.");#endif	return result;}
开发者ID:m6jones,项目名称:FriendLink,代码行数:33,


示例11: QueueNiNodeUpdate

	void QueueNiNodeUpdate(Actor* thisActor)	{		Character * pChar = DYNAMIC_CAST(thisActor, Actor, Character);		if(pChar) {			CALL_MEMBER_FN(pChar, QueueNiNodeUpdate)(false); // False makes this allow weapons to not be auto holstered apparently		}	}
开发者ID:NecroReindeer,项目名称:comp140-api-hacking,代码行数:7,


示例12: CALL_MEMBER_FN

std::vector<float> physics::K1(float t, const std::vector<float>& x){  if(!RKfunc)    throw std::logic_error("physics::K1(float, const std::vector<float>&): RKfunc is NULL");  return CALL_MEMBER_FN(*this,RKfunc)(t,x);}
开发者ID:01d55,项目名称:Springform-Deformation,代码行数:7,


示例13: CALL_MEMBER_FN

void CustomMenu::Render(){	if(view) {		view->Render();		CALL_MEMBER_FN(Inventory3DManager::GetSingleton(), Render)();	}}
开发者ID:RealAntithesis,项目名称:JContainers,代码行数:7,


示例14: CALL_MEMBER_FN

void TESForm::DoAddForm(TESForm* newForm, bool persist, bool record) const{	CALL_MEMBER_FN(DataHandler::Get(), DoAddForm)(newForm);	if(persist)	{		// Only some forms can be safely saved as SaveForm. ie TESPackage at the moment.		bool canSave = false;		TESPackage* package = DYNAMIC_CAST(newForm, TESForm, TESPackage);		if (package)			canSave = true;		// ... more ?		if (canSave)			CALL_MEMBER_FN(TESSaveLoadGame::Get(), AddCreatedForm)(newForm);	}}
开发者ID:Alenett,项目名称:TES-Reloaded-Source,代码行数:17,


示例15: ThisStdCall

TESObjectREFR* TESObjectREFR::Create(bool bTemp){	TESObjectREFR* refr = (TESObjectREFR*)FormHeap_Allocate(sizeof(TESObjectREFR));	ThisStdCall(s_TESObject_REFR_init, refr);	if (bTemp)		CALL_MEMBER_FN(refr, MarkAsTemporary);	return refr;}
开发者ID:jazzisparis,项目名称:JIP-NVSE-Plugin,代码行数:8,


示例16: FormHeap_Allocate

BSDismemberSkinInstance * BSDismemberSkinInstance::Create(){	void* memory = FormHeap_Allocate(sizeof(BSDismemberSkinInstance));	memset(memory, 0, sizeof(BSDismemberSkinInstance));	BSDismemberSkinInstance* xData = (BSDismemberSkinInstance*)memory;	CALL_MEMBER_FN(xData, ctor)();	return xData;}
开发者ID:NecroReindeer,项目名称:comp140-api-hacking,代码行数:8,


示例17: CALL_MEMBER_FN

void VMClassInfo::Release(void){	if(!InterlockedDecrement(&refCount))	{		CALL_MEMBER_FN(this, Destroy)();		FormHeap_Free(this);	}}
开发者ID:himika,项目名称:libSKSE,代码行数:8,


示例18: CALL_MEMBER_FN

JG_Enemy_Base* JG_AttackWave_AllLinesTogether::addEnemy(){	JG_Enemy_Base* tempEnemy;	std::vector<SEnemyTypes> enemyTypes = CALL_MEMBER_FN(listenerObj, getEnemyTypesFunction)();	tempEnemy = (JG_Enemy_Base*) enemyTypes[selectEnemyType()].factory->Create();	CCSize screenSize = CCDirector::sharedDirector()->getWinSize();	tempEnemy->InitialEnemy(ccp((float)(- 20),(float) screenSize.height + 20.0), EnemyBonus_None);		//mainGame->enemyArray->addObject(tempEnemy);	CALL_MEMBER_FN(listenerObj,addEnemyFunction)(tempEnemy);	//remember to initial enemies	//mainGame->addChild((CCNode*) tempEnemy,50);	pathQueue.push(pathCounter);	enemyQueue.push(tempEnemy);	return tempEnemy;}
开发者ID:ayyoobimani,项目名称:juggling,代码行数:17,


示例19: GetCostliestEffectIndex

	UInt32 GetCostliestEffectIndex(MagicItem* thisMagic)	{		if (!thisMagic)			return 0;		MagicItem::EffectItem * pEI = CALL_MEMBER_FN(thisMagic, GetCostliestEffectItem)(5, false);		return pEI ? thisMagic->effectItemList.GetItemIndex(pEI) : 0;	}
开发者ID:NecroReindeer,项目名称:comp140-api-hacking,代码行数:8,


示例20: Cmd_SKSETestFunc_Eval

bool Cmd_SKSETestFunc_Eval(COMMAND_ARGS_EVAL){	NiNode	* node = (*g_thePlayer)->GetNiNode();	UInt8		niStreamMemory[0x5B4];	NiStream	* niStream = (NiStream *)niStreamMemory;	CALL_MEMBER_FN(niStream, ctor)();	node->IncRef();	niStream->m_rootObjects.Append(node);	niStream->SavePath("head.nif");	CALL_MEMBER_FN(niStream, dtor)();	return true;	}
开发者ID:RealAntithesis,项目名称:JContainers,代码行数:17,


示例21: UpdateWeight

	void UpdateWeight(Actor * thisActor, float neckDelta)	{		BSTaskPool * taskPool = BSTaskPool::GetSingleton();		if(taskPool) {			CALL_MEMBER_FN(thisActor, QueueNiNodeUpdate)(true);			taskPool->UpdateWeight(thisActor, neckDelta,  0, true);		}	}
开发者ID:NecroReindeer,项目名称:comp140-api-hacking,代码行数:8,


示例22: clearIrqData

int MPLSensor::readEvents(sensors_event_t* data, int count){    //VFUNC_LOG;    int i;    bool irq_set[5] = { false, false, false, false, false };    inv_error_t rv;    if (count < 1)        return -EINVAL;    int numEventReceived = 0;    clearIrqData(irq_set);    pthread_mutex_lock(&mMplMutex);    if (mDmpStarted) {        //ALOGV_IF(EXTRA_VERBOSE, "Update Data");        rv = inv_update_data();        ALOGE_IF(rv != INV_SUCCESS, "inv_update_data error (code %d)", (int) rv);    }    else {        //probably just one extra read after shutting down        ALOGV_IF(EXTRA_VERBOSE,                "MPLSensor::readEvents called, but there's nothing to do.");    }    pthread_mutex_unlock(&mMplMutex);    if (!mNewData) {        ALOGV_IF(EXTRA_VERBOSE, "no new data");        return 0;    }    mNewData = 0;        /* google timestamp */    pthread_mutex_lock(&mMplMutex);    for (int i = 0; i < numSensors; i++) {        if (mEnabled & (1 << i)) {            CALL_MEMBER_FN(this,mHandlers[i])(mPendingEvents + i,                                              &mPendingMask, i);	    mPendingEvents[i].timestamp = irq_timestamp;        }    }    for (int j = 0; count && mPendingMask && j < numSensors; j++) {        if (mPendingMask & (1 << j)) {            mPendingMask &= ~(1 << j);            if (mEnabled & (1 << j)) {                *data++ = mPendingEvents[j];                count--;                numEventReceived++;            }        }    }    pthread_mutex_unlock(&mMplMutex);    return numEventReceived;}
开发者ID:PDi-Communication-Systems-Inc,项目名称:lollipop_hardware_invensense,代码行数:58,


示例23: CALL_MEMBER_FN

bool Script::RunScriptLine2(const char * text, TESObjectREFR* object, bool bSuppressOutput){    //ToggleConsoleOutput(!bSuppressOutput);    ConsoleManager	* consoleManager = ConsoleManager::GetSingleton();    UInt8	scriptBuf[sizeof(Script)];    Script	* script = (Script *)scriptBuf;    CALL_MEMBER_FN(script, Constructor)();    CALL_MEMBER_FN(script, MarkAsTemporary)();    CALL_MEMBER_FN(script, SetText)(text);    bool bResult = CALL_MEMBER_FN(script, Run)(consoleManager->scriptContext, true, object);    CALL_MEMBER_FN(script, Destructor)();    //ToggleConsoleOutput(true);    return bResult;}
开发者ID:robojan,项目名称:RealPipboyNV,代码行数:18,


示例24: return

// Parses the handle again for some unknown reasonbool IObjectHandlePolicy::Unk_02_Hook(UInt64 handle){	PlayerCharacter* pPC = (*g_thePlayer);	if(pPC) {		return ((handle & 0x0000AA0000000000) == 0x0000AA0000000000) && ((handle & 0xFFFFFFFF) == pPC->formID);	}	return CALL_MEMBER_FN(this, Unk_02_Origin)(handle);}
开发者ID:himika,项目名称:libSKSE,代码行数:10,


示例25: strlen

void BGSSaveLoadManager::DeleteSavegame_Hook(const char * saveNameIn, UInt32 unk1){	std::string saveName = saveNameIn;	PluginManager::Dispatch_Message(0, SKSEMessagingInterface::kMessage_DeleteGame, (void*)saveName.c_str(), strlen(saveName.c_str()), NULL);	CALL_MEMBER_FN(this, DeleteSavegame)(saveNameIn, unk1);	Serialization::HandleDeleteSave(saveName);}
开发者ID:kassent,项目名称:SkyrimSouls-SE,代码行数:9,


示例26: CALL_MEMBER_FN

void SkyrimVM::RevertGlobalData_Hook(void){	CALL_MEMBER_FN(this, RevertGlobalData_Internal)();	Serialization::HandleRevertGlobalData();	papyrusUICallback::RevertGlobalData();	papyrusModEvent::RevertGlobalData();}
开发者ID:NecroReindeer,项目名称:comp140-api-hacking,代码行数:9,


示例27: test_reshape_algorithm

void test_reshape_algorithm() {	int num1 = tidfa_num;		reshape();		int num2 = tidfa_num;		printf("%d new states are needed!/n", num2 - num1);	int p = 0;	int i = 0;	bool http_accept = false;	for (; i < strlen(indata); i++) {		p = tidfa_newtr[p][indata[i]];		if (new_tidfa_accept[p] != -1) {			http_accept = true;			break;		}	}	if (http_accept) i++;	printf("Tidfa accept state = %d/n", p);	printf("Character consump = %d/n", i);		tsNode *t = tidfaState[getfa(p)];	while(t != NULL) {		if (t->tidfa_q == p) break;		t = t->next;	}	matches = t->matches;	run_string(indata + i, t->x);	printState(t->x);	printf("matches=%d/n", matches);		printf("----------------run all character all once---------------/n");	state st;	matches = 0;	st.flow_data_length = strlen(indata);	st.flow_data = (const u_char*)indata;  	while (st.fdpos < st.flow_data_length && st.q != NULL)		CALL_MEMBER_FN(st, st.q)();	printState(st);	printf("matches=%d/n", matches);	printf("---------------run_fs function---------/n");	matches = 0;	state st1;	for (int j = 0; j < strlen(indata); j++)		run_fs(indata[j], st1);	printState(st1);		printf("matches=%d/n", matches);		return ;}
开发者ID:kun2012,项目名称:OnePassProtocolParsing,代码行数:57,


示例28: Accept

	bool Accept(TESContainer::Entry* pEntry)	{		SInt32 numObjects = 0;		if (m_info.IsValidEntry(pEntry, numObjects)) {			CALL_MEMBER_FN(m_formList, AddFormToList)(pEntry->form);		}		return true;	}
开发者ID:NecroReindeer,项目名称:comp140-api-hacking,代码行数:9,



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


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