Я относительно новичок в мире C ++.Я хочу получить доступ к данным из многомерного SAFEARRAY.Однако, когда я пытаюсь получить значение, я получаю сообщение об ошибке 0xC0000005: Место чтения нарушения доступа 0x40e3e300.Приложенный ниже мой код и отмеченная строка, где это ошибки.Надеюсь, кто-то может пролить свет на то, как решить эту проблему.
SAFEARRAY *ArrayCrosstabInfo = GetMainFrame().m_epsComHelper->GetCrosstab(m_arrayFieldnames,start,end);
COleSafeArray ArrayCrosstab(*ArrayCrosstabInfo,VT_SAFEARRAY);
BSTR *DataValue;
ArrayCrosstab.AccessData((void**) &DataValue);
long lUBoundX;
long lUBoundY;
ArrayCrosstab.GetUBound(1,&lUBoundX);
ArrayCrosstab.GetUBound(2,&lUBoundY);
long lOffset = 2;
int nFieldIndex = 0;
if (lUBoundX > 0 && lUBoundY > 0)
{
//only interested in DataValue[0,x]
for (long i = lOffset; i<=lUBoundY; i++)
{
_bstr_t theData((BSTR)DataValue[0,i],FALSE); <==ERRORS HERE
//Display (BSTR)theData;
}
}