![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
OLEVariant [D6, WinXP]
MixAnOL © (2006-09-17 20:15:00)Здарово всем!
Есть OLE сервер с событиями, есть событие с параметром widestring. Для тестирования создал клиента, импортировал библиотеку типов для моего сервера. В полученной юните у этого события параметр уже имеет тип OleVariant - почему так происходит?
И как в клиенте получить строку из этого OleVariant??
Что ни пробоваль - получается пустая строка....
Сервер тестировал пошагово, проверял какое значение уходит как параметр...
oxffff (2006-09-18 19:10:00) [1]Если так, тогда можно и так varbyte+varbyref
Сергей М. (2006-09-18 16:17:00) [2]
> как мне передать record в OLEVariant
как varArray
oxffff (2006-09-18 15:33:00) [3]Как я могу тебе ответить, если я не знаю, что в чем разрабатывается.
Могу тебе сказать, что сделать можно.
MixAnOL (2006-09-18 13:55:00) [4]да похоже у меня собака в другом месте порылась... косяк был в реализации интерфейса.
На счет TVarData: а как мне передать record в OLEVariant?
oxffff (2006-09-18 11:31:00) [5]Я написал пример, как устроен varOleStr or varbyref.
Это двойной указатель на строку.
Напиши с кодом, что тебе непонятно.
MixAnOL (2006-09-18 11:02:00) [6]TVarData интересная вестчь... но мне не помогла...
может из-за того, что строка передается по ссылке, а событие у меня генерится в процедуре и ссылка на локальную переменную? На событиях OLE требует обязательно указатель, а не значение в параметрах...
Вот и не пойму, как мне делать ссылку правильной..или еще что-то...
oxffff (2006-09-17 22:49:00) [7]Вот тебе пример работы с varOleStr or varbyref
var a:OleVariant;
b:pWideString;
c:TVarData;
d:WideString;
begin
d:='423dasdas4';
b:=@d;
TVarData(a).VType:=varOleStr or varbyref;
TVarData(a).VAny:=b;
showmessage(a); на экране 423dasdas4
oxffff (2006-09-17 22:40:00) [8]varOleStr Reference to a dynamically allocated UNICODE string.
Percent (2006-09-17 22:36:00) [9]widestring
Тут не всякий "программист", пишущий на Delphi, знает про этот тип. А ты хочешь, чтобы все клиенты твоего OLE сервера об этом типе знали...
MixAnOL (2006-09-17 20:23:00) [10]в дополнение, с помощью VarType определил, что тип у параметра varByRef+varOleStr...
как достать эту строку? что-то в голову ни чего путного не лезет...