void CMyiRiNMRView::GetNMRDataA()
{
VARIANT m_nVarA;
m_nVarA =iRiNMR.GetDataA();
if(m_nVarA.vt == VT_ARRAY|VT_R4)
{
VARIANT *varDataA = 0;
SAFEARRAY *pDataA = m_nVarA.parray;  SafeArrayAccessData(pDataA,(void **)&varDataA);
      //调试在SafeArrayAccessData函数时,弹出对话框  Unhandled exception in 
      //MyiRiNMR.EXE (OLEAUT32.DLL):0xC00000005 : Access Violation lowBound = pDataA->rgsabound[0].lLbound;
upBound = lowBound + pDataA->rgsabound[0].cElements - 1; for(long i=lowBound;i<upBound;i++)
{
m_DataA.push_back(varDataA[i].fltVal);
}

SafeArrayUnaccessData(pDataA);
SafeArrayDestroy(pDataA);
}

}上面的函数是为了解决 从一个存了一个float数组的的VARIANT类型的中取到数组的每个元素放入vector<float>m_DataA之中,可是当我调试到SafeArrayAccessData函数时,弹出对话框提示  Unhandled exception in MyiRiNMR.EXE (OLEAUT32.DLL):0xC00000005 : Access Violation .很苦恼,这个类型已经苦苦纠缠了我几天了,我实在不知道怎么样从一个VARIANT类型的变量中取的一个float的数组,或者一个更为实质性的能解决这个问题的方法,哪位好心人来救救我,我在这里给大虾作揖了..  我需要很清楚的解释,或者代码,以便引导我修改我的代码,请大家说的详细一些,谢谢了..