![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| VictorPr |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 1.7.2004 Репутация: нет Всего: нет |
День добрый. Вопрос такой. Каким образом, в Делфи возможно передать клиенту из метода COM некую структуру, используя OleVariant в качестве out параметра?
Заранее спасибо. |
|||
|
||||
| <Spawn> |
|
|||
![]() Око кары:) ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2776 Регистрация: 29.1.2003 Где: Екатеринбург Репутация: 44 Всего: 64 |
А зачем передавать через OleVariant? Можешь попробовать набросать интерфейс за место структуры и передавать указатель на его экземпляр. Недавно что то похожее в книге видел.
-------------------- "Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков. |
|||
|
||||
| VictorPr |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 1.7.2004 Репутация: нет Всего: нет |
Почемуто все ссылаются на книги
|
|||
|
||||
| Girder |
|
|||
![]() Лентяй 2 ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1993 Регистрация: 12.5.2004 Репутация: 31 Всего: 155 |
Напиши как и чего ты хочеш в виде кода. Так тебе быстрее помогут.
-------------------- Как слышим, так и пишим. Истина где-то там... |
|||
|
||||
| VictorPr |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 1.7.2004 Репутация: нет Всего: нет |
Да тут дело оказалось проще, можно структуры и так гонять, нада только описать их в TLB
А вот возникла другая трабла. Как передать вложенные структуры? Например: TFileInfo = packed record m_Name: WideString; m_Size: Integer; m_AllocSize: Integer; m_Creation: WideString; m_Change: WideString; m_LastAccess: WideString; m_LastWrite: WideString; end; TDir_Entry = packed record m_Size: Integer; m_Files: ^TFileInfo; end; Дело в том, что изменить этот код я не могу, он всё равно перегенерится делфёй. Я программер С++ и понять не могу как в паскале сделать следующее, вторая структура содержит указатель на первую, потому как в TLB прописанно: typedef struct tagTDir_Entry { long m_Size; struct tag TFileInfo * m_Files /*Warning: unable to validate structure name: */; int TDir_Entry_DUMMY; } TDir_Entry; Вот, но мне нада этот указатель сделать динамическим массивом. Пример как это в С++ делается: TFileInfo * m_Files = new TFileInfo[10]. Как такое сделать в паскале? |
|||
|
||||
| <Spawn> |
|
||||
![]() Око кары:) ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2776 Регистрация: 29.1.2003 Где: Екатеринбург Репутация: 44 Всего: 64 |
Добавлено @ 12:22 Задавать размер так
Это сообщение отредактировал(а) <Spawn> - 2.7.2004, 12:24 -------------------- "Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков. |
||||
|
|||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |