Размер PROPVARIANT, содержащего VT_VECTOR, на x64
От: GRV87 Россия  
Дата: 28.12.10 23:26
Оценка:
PROPVARIANT может содержать структуры вида
    cElems: ULONG;
    pElems: PByte; // Или другой указатель


В этом случае в поле vt выставляется флаг VT_VECTOR.
Вопрос в том, как это реализовано на 64-разрядных системах, где указатель занимает 8 байт, и, следовательно, структура не влезет в отведённые ей 8 байтов.
Комбинация VT_BYREF и VT_VECTOR (насколько я понял) невозможна.

Обшарил весь интернет в поисках ответа, и ничего не нашёл.
Или 64-разрядные ОС не поддерживают VT_VECTOR?
propvariant vt_vector x64
Re: Размер PROPVARIANT, содержащего VT_VECTOR, на x64
От: GRV87 Россия  
Дата: 28.12.10 23:51
Оценка:
И ещё дополнительный вопрос:
VT_INT и VT_UINT — signed и unsigned machine integer соответственно.
Я правильно понимаю, что размер зависит от разрядности системы? И порядок байтов тоже зависит от системы?
variant vt_int vt_uint
Re: Размер PROPVARIANT, содержащего VT_VECTOR, на x64
От: Vi2 Удмуртия http://www.adem.ru
Дата: 29.12.10 08:39
Оценка:
Здравствуйте, GRV87, Вы писали:

GRV>Вопрос в том, как это реализовано на 64-разрядных системах, где указатель занимает 8 байт, и, следовательно, структура не влезет в отведённые ей 8 байтов. Комбинация VT_BYREF и VT_VECTOR (насколько я понял) невозможна.


Откуда ограничение в 8 байтов? Поскольку там всё хранится в виде union, то размер структуры PROPVARIANT на 64-разрядных системах просто увеличится.

GRV>Обшарил весь интернет в поисках ответа, и ничего не нашёл.


Ну, наверное, потому что тут нет вопроса.
Vita
Выше головы не прыгнешь, ниже земли не упадешь, дальше границы не убежишь! © КВН НГУ
Re[2]: Размер PROPVARIANT, содержащего VT_VECTOR, на x64
От: GRV87 Россия  
Дата: 30.12.10 07:25
Оценка:
Я исходил из того, что структура PROPVARIANT должна быть платформонезависимой.
Спасибо за ответ.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.