Вниз
Скачать: CL | DM;

OLEVariant   Найти похожие ветки 

← →
MixAnOL ©   (2006-09-17 20:15) [0]

Здарово всем!

Есть OLE сервер с событиями, есть событие с параметром widestring. Для тестирования создал клиента, импортировал библиотеку типов для моего сервера. В полученной юните у этого события параметр уже имеет тип OleVariant - почему так происходит?

И как в клиенте получить строку из этого OleVariant??

Что ни пробоваль - получается пустая строка....
Сервер тестировал пошагово, проверял какое значение уходит как параметр...


← →
MixAnOL ©   (2006-09-17 20:23) [1]

в дополнение, с помощью VarType определил, что тип у параметра varByRef+varOleStr...
как достать эту строку? что-то в голову ни чего путного не лезет...


← →
Percent   (2006-09-17 22:36) [2]

widestring

Тут не всякий "программист", пишущий на Delphi, знает про этот тип. А ты хочешь, чтобы все клиенты твоего OLE сервера об этом типе знали...


← →
oxffff ©   (2006-09-17 22:40) [3]

varOleStr Reference to a dynamically allocated UNICODE string.


← →
oxffff ©   (2006-09-17 22:49) [4]

Вот тебе пример работы с 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


← →
MixAnOL ©   (2006-09-18 11:02) [5]

TVarData интересная вестчь... но мне не помогла...
может из-за того, что строка передается по ссылке, а событие у меня генерится в процедуре и ссылка на локальную переменную? На событиях OLE требует обязательно указатель, а не значение в параметрах...
Вот и не пойму, как мне делать ссылку правильной..или еще что-то...


← →
oxffff ©   (2006-09-18 11:31) [6]

Я написал пример, как устроен varOleStr or varbyref.
Это двойной указатель на строку.

Напиши с кодом, что тебе непонятно.


← →
MixAnOL ©   (2006-09-18 13:55) [7]

да похоже у меня собака в другом месте порылась... косяк был в реализации интерфейса.

На счет TVarData: а как мне передать record в OLEVariant?


← →
oxffff ©   (2006-09-18 15:33) [8]

Как я могу тебе ответить, если я не знаю, что в чем разрабатывается.
Могу тебе сказать, что сделать можно.


← →
Сергей М. ©   (2006-09-18 16:17) [9]


> как мне передать record в OLEVariant


как varArray


← →
oxffff ©   (2006-09-18 19:10) [10]

Если так, тогда можно и так varbyte+varbyref



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.027 c
3-1157207669
*Ray*
2006-09-02 18:34
2006.10.29
Delphi7, MySQL 5.0.18, ADO


15-1160162164
SkySpeed
2006-10-06 23:16
2006.10.29
Как можно вызвать программу в PHP с TEXT a?


15-1159957324
Layner
2006-10-04 14:22
2006.10.29
Господа москвичи! Подскажите самый крупный IT универсам в столице


2-1160677553
Still Swamp
2006-10-12 22:25
2006.10.29
Как приторочить иконку для моих компонетов


15-1160584898
Cooller
2006-10-11 20:41
2006.10.29
Написание программ на Delphi для Win64




   Наверх