![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Обойти OleVariant [D7, WinXP]
XProger © (2006-04-03 03:57:00)Есть функция в качестве одного из параметров, принимающая OleVariant. Существует ли возможность передачи параметра (строки) не используя вариантных типов?
Любые ссылки по теме, приветствуются :)
Заранее благодарен!
tesseract (2006-04-04 10:21:00) [1]
> если принимает данные, значит эти данные имеют какую-то
> структуру,
Все данные имеют структуру. Просто с variant меньше проблем.
XProger (2006-04-04 04:24:00) [2]Leonid Troyanovsky, угу :)
Leonid Troyanovsky (2006-04-03 18:55:00) [3]
> XProger © (03.04.06 18:43) [4]
> v.varOleStr := PWideChar(str);
Строка-то WideString?
--
Regards, LVT.
XProger (2006-04-03 18:43:00) [4]Разобрался
var
v : packed record
VType : Word;
Reserved1 : Word;
Reserved2 : Word;
Reserved3 : Word;
varOleStr : PWideChar;
Reserved4 : Word;
Reserved5 : Word;
end;
...
ZeroMemory(@v, SizeOf(v));
v.VType := varOleStr;
v.varOleStr := PWideChar(str);
Затем передаю v вместо OleVariant типа. В итоге получаю 0 (практически ;) прирост к exe файлу :)
Тема закрыта
XProger (2006-04-03 17:47:00) [5]tesseract, +50 кб - этим не нравится.
Сергей М., если принимает данные, значит эти данные имеют какую-то структуру, которую можно создать вручную. И передавать, избегая вызовы не нужных мне функций для работы с вариантным типом.
Т.е. вопрос можно поставить так: как устроен вариантный тип?
tesseract (2006-04-03 10:41:00) [6]А чем тебе OLEVariant не нравится?
Сергей М. (2006-04-03 08:30:00) [7]Если функция требует именно OleVariant, значит и надо передавать OleVariant.