Проблемы с SafeArrayCreate
От: Nurlan  
Дата: 29.06.06 03:38
Оценка:
Здрасте всем.

Люди добрые может кто встречался с такой проблемой?

Имеется код

CComSafeArray<byte> array;
array.Create( 36 );     
LPSAFEARRAY pSafeArray = *array.GetSafeArrayPtr();


в результате получаем следующее: поля pSafeArray все установлены в 0 кроме cLocks
и вся последующая работа с этим массивом невозможна.

При пошаговом выполнении метода Create обнаружилось что такой результат выдает функция SafeArrayCreate, но что самое интересное так это то, что если сразу после ее вызова вызвать ее еще раз, то все становится на свои места т.е. происходит выделение памяти и все поля струтуры SAFEARRAY заполняются нормально.

Уже 2 дня бьюсь с этой бедой, безрезультатно.

Происходит это только на одной машине XP SP2, на остальных все нормально.

Есть у кого какие идеи?

Заранее спасибо
Re: Проблемы с SafeArrayCreate
От: Nurlan  
Дата: 29.06.06 11:02
Оценка:
Все разобрался.

Проблема заключалась в том что ранее в коде (в другой функции) делалолсь лишнее освобождение аналогичного масива, и там все проходило без запинки.

А когда дело доходило до очередного выделения памяти у системы крышу и сносило.
Re: Проблемы с SafeArrayCreate
От: George Seryakov Россия  
Дата: 29.06.06 12:32
Оценка:
Здравствуйте, Nurlan, Вы писали:

N>При пошаговом выполнении метода Create обнаружилось что такой результат выдает функция SafeArrayCreate,


А HRESULT-то какой она возвращает? Ну, или, что то же самое, какой HRESULT возвращает array.Create( 36 )?
GS
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.