il codice è molto esteso te ne posto una parte,
codice:
bool CBaseDatabaseSapData::ImportBeamLoads(int* nBLType, int* nBeamID, int* pLCaseNum, CTypedPtrArray<CPtrArray, tagLoadData*> * pLoadDataArray,CString strCase,CSapLoadType *pType)
if(!m_pDM)
return false;
CSapBeam * pBeam = m_pDM->getByID(atoi(m_strNameCurrentBeam));
if(pBeam == NULL)
return false;
CSapLoadCase *pCase = pBeam->getByID(strCase);
if(pCase==NULL)
return false;
pType = pCase->getByID(*nBLType);
if(pType==NULL)
return false;
//count di array interno(privato) di ptype >0
return true;
la funzione è dichiarata cosi:
codice:
bool ImportBeamLoads(int* nBLType, int* nBeamID, int* pLCaseNum, CTypedPtrArray<CPtrArray, tagLoadData*> * pLoadDataArray,CString strCase, CSapLoadType *pType);
e la funzione chiamate è questa:
codice:
CSapLoadType * pType = new CSapLoadType();
pLoadDataArray->RemoveAll();
if(*pLCaseNum < 0)
*pLCaseNum = 0;
tagStaticLCDataTempLogic ACData;
m_AnalysisCaseNum.Lookup(*pLCaseNum +1 , ACData);
m_pData->ImportBeamLoads(&nBLType,&nBeamID, pLCaseNum, pLoadDataArray,ACData.strCase,pType));
//count di array interno (privato)di pType è a 0!!!!!