用VB做了个dll,其中有个函数接口是这样的:Public Function Test() as String(),在VC中返回值应该是个BSTR型的安全数组,俺想问一下,怎样才能把数组中的元素提取出来?我是这样做的,可折腾半天还是得不到数组元素的值:
SAFEARRAY *pArrPenID = NULL;
//……获取函数返回值,过程省略……
long l, u;
SafeArrayGetLBound(pArrPenID, 1, &l);
SafeArrayGetUBound(pArrPenID, 1, &u);
BSTR strReadID;
for (long i = l; i <= u; i++)
{
    HRESULT hr;
    if (hr = SafeArrayGetElement(pArrPenID, &i, &strReadID) != S_OK)
    {
AfxMessageBox("获取数据失败");  //老是在这里提示失败
return;
    }
    AfxMessageBox(CString(strReadID));
}