ho provato a mettere nel distruttore della classe che ua i saferray questo codice:
codice:
if(m_pSAListNamesJoint)
SafeArrayDestroy(m_pSAListNamesJoint);
if(m_pSAListNamesArea)
SafeArrayDestroy(m_pSAListNamesArea);
if(m_pSAListNamesBeamObj)
SafeArrayDestroy(m_pSAListNamesBeamObj);
if(m_pSAListNamesSection)
SafeArrayDestroy(m_pSAListNamesSection);
if(m_pSAListNamesmaterialstion)
SafeArrayDestroy(m_pSAListNamesmaterialstion);
if(m_pSAOffsetI)
SafeArrayDestroy(m_pSAOffsetI);
if(m_pSAOffsetJ)
SafeArrayDestroy(m_pSAOffsetJ);
if(m_pSAListNamesStaticCase)
SafeArrayDestroy(m_pSAListNamesStaticCase);
if(m_pSAListRunCase)
SafeArrayDestroy(m_pSAListRunCase);
if(m_pSAListRunCaseValue)
SafeArrayDestroy(m_pSAListRunCaseValue);
if(m_pSAListNamesDynCase)
SafeArrayDestroy(m_pSAListNamesDynCase);
CoUninitialize();
ma a volte mi ritorna quest'errore:
Unhandled exception at 0x770f4fd1 in CMP.exe: 0xC0000005: Access violation reading location 0xcdcdcdd5.
i safearray sono dichiarati cosi:
codice:
SAFEARRAY * m_pSAListNamesJoint;
SAFEARRAY * m_pSAListNamesArea;
SAFEARRAY * m_pSAListNamesBeam;
SAFEARRAY * m_pSAListNamesBeamObj;
SAFEARRAY * m_pSAListNamesBeamElements;
SAFEARRAY * m_pSAListNamesSection;
SAFEARRAY * m_pSAListNamesmaterialstion;
SAFEARRAY* m_pSAOffsetI;
SAFEARRAY* m_pSAOffsetJ;
SAFEARRAY* m_pSAListNamesStaticCase;
SAFEARRAY* m_pSAListRunCase;
SAFEARRAY* m_pSAListRunCaseValue;
SAFEARRAY* m_pSAListNamesDynCase;
grazie Oregon