Ошибка в примере?
От: Алексей Владимирович Миронов Россия  
Дата: 18.10.02 13:48
Оценка:
По-моему, в примере к функциям SafeArrayGetElement(), SafeArrayPutElement() ошибка.

for (i = 0; i <= iUBound — iLBound; i++) // судя по всему, i — целочисленная переменная
{
hr = SafeArrayGetElement(psaiInOut, i, &iVal);
// В этом месте компилятор ругается: error C2664: 'SafeArrayGetElement' : cannot convert
// parameter 2 from 'long' to 'long *'

if(FAILED(hr))
return hr;

iVal++;

hr = SafeArrayPutElement(psaiInOut, i, &iVal); // в этом тоже ругается

if(FAILED(hr))
return hr;
}

Необходимо завести массив long indexes[] и затем применять его, например, следующим образом:

for (i = 0, indexes[0] = iLBound; i <= iUBound — iLBound; i++, indexes[0]++)
{
hr = SafeArrayGetElement(psaiInOut, indexes, &iVal);
if(FAILED(hr))
return hr;

iVal++; // Увеличиваем значение ячейки массива.

hr = SafeArrayPutElement(psaiInOut, indexes, &iVal);
if(FAILED(hr))
return hr;
}
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.