Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.08.15;
Скачать: CL | DM;

Вниз

Проблема с COM   Найти похожие ветки 

 
aserov   (2002-08-12 16:38) [0]

Пытаюсь написать сервер автоматизации Все делаю по книжкам проблем пока не возникало, Но мне необходимо от клиента серверу передать блок данных оформленных как запись (packed record) При создании библиотеки типов я описал тип дпнных записи У одного из интерфейсов продекларировал метод который в качестве параметра возвращает указатель на запись. При генерации файла <имя проекта>_TLB.pas  метод переписался и в место указателя на запись я получил тип TGUID. Так вопрос в том как же мне все таки воспользоваться данным методом и как все же организовать передачу экземпляра записи от сервера к клиенту и обратно. Отказаться от использования записи как таковой по условиям задачи нельзя. Заранее благодарен


 
А. Н. Оним   (2002-08-12 17:53) [1]

У меня были подобные проблемы с Delphi при импорте TypeLib"ов, по крайней мере с пиратским Delphi и при переходе на лицензионный проблема волшебным образом испарились ;)

 Почему бы тебе руками не подправить TypeLib? Структура будет отображаться на Pas именно как packed record ... end;.





 
Набережных С.   (2002-08-12 21:25) [2]


> aserov   (12.08.02 16:38)

И в справке Delphi, и в MSDN имеется список типов, поддерживаемых TypeLib маршаллером. Разумеется, указатель на твой рекорд в них не входит, как впрочем и любой другой указатель. Если нужно(надеюсь, речь идет об инпроцессном сервере), то можно использовать integer. Если не потребуется межконтекстный маршаллинг, то подойдет и PChar, однако вряд-ли стоит на это рассчитывать. Я бы сказал, что ни в коем случае нельзя. Либо можно передавать саму запись по значению при условии, что она содержит типы, совместимые с автоматизацией. Наконец, можно любой тип данных упаковать в массив байт и передать через Variant. А если несколько загадочная фраза
У одного из интерфейсов продекларировал метод который в качестве параметра возвращает указатель на запись

означает применение модификатора var или out, то в библиотеке типов они означают направление маршаллинга, а не передачу по ссылке.
 Если что-то не получится, то покажи декларацию рекорда и функции в IDL и PAS - файлах.



 
aserov   (2002-08-13 10:22) [3]

Всем спасибо проблема устранилась как только я поставил новую видно правильно сломанную версию Delphi



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

Текущий архив: 2004.08.15;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.025 c
4-1088691398
BillyJeans
2004-07-01 18:16
2004.08.15
Форма и её контролы...


1-1091183687
goliath
2004-07-30 14:34
2004.08.15
CLX vs VCL


3-1090386222
Sergey Vorobyev
2004-07-21 09:03
2004.08.15
Сравните MySQL и Interbase, хотя бы по одной фразе


1-1091527866
GanibalLector
2004-08-03 14:11
2004.08.15
Word (увеличение шрифта)


3-1090234927
Spivi
2004-07-19 15:02
2004.08.15
компоненты, у которых есть свойство DataSource