| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Передача структур через OleVariant |
| Автор: VictorPr 1.7.2004, 17:28 |
| День добрый. Вопрос такой. Каким образом, в Делфи возможно передать клиенту из метода COM некую структуру, используя OleVariant в качестве out параметра? Заранее спасибо. |
| Автор: <Spawn> 1.7.2004, 19:59 |
| А зачем передавать через OleVariant? Можешь попробовать набросать интерфейс за место структуры и передавать указатель на его экземпляр. Недавно что то похожее в книге видел. |
| Автор: VictorPr 2.7.2004, 08:36 |
| Почемуто все ссылаются на книги |
| Автор: Girder 2.7.2004, 09:33 |
| Напиши как и чего ты хочеш в виде кода. Так тебе быстрее помогут. |
| Автор: VictorPr 2.7.2004, 11:57 |
| Да тут дело оказалось проще, можно структуры и так гонять, нада только описать их в 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> 2.7.2004, 12:20 | ||||
Добавлено @ 12:22 Задавать размер так
|