Как использовать TDataset и Dll с Delphi - PullRequest
2 голосов
/ 22 сентября 2011

Я хотел бы создать dll для импорта данных из файла (другой формат, например csv, txt, xls, ...). Моя идея заключается в следующем: DLL загружают данные с помощью своего «движка», а затем отправляют эти данные в мое приложение, чтобы мое приложение могло отображать их в сетке.

Это моя вторая DLL, поэтому у меня возникли некоторые проблемы / вопросы.

Я думаю, что моя DLL должна отправлять данные в TDataset моего приложения, но как я могу вызвать DLL с TDataset в качестве аргумента?

Есть предложения? Какой самый простой способ сделать то, что я имею в виду? (если возможно)

Ответы [ 2 ]

3 голосов
/ 22 сентября 2011

Если вы являетесь создателем этих DLL, рассмотрите возможность использования пакетов вместо DLL.Это позволит избежать проблем, таких как дублирование Delphi RTTI, простого DLL API.Затем вам нужно будет правильно разделить классы между пакетами, загрузить пакеты статически или динамически, получить ссылку на класс, реализующий механизм импорта, и вызвать соответствующий метод со ссылкой на набор данных в качестве значения параметра.

0 голосов
/ 22 сентября 2011

Более простым способом было бы хранить данные непосредственно в базе данных в DLL.И после импорта вы просто обновляете свой TDataset.

Кстати, вы не «вызываете DLL», вы вызываете какой-то метод, который является общедоступным в DLL, и там вы можете использовать аргументы как в обычных методах.1004 * РЕДАКТИРОВАТЬ: Для более общих DLL, которые не требуют компонентов данных, просто отправьте данные в структуре

 TMyData
 { int ID;
   String Value;
 };

int MyDataImport(TMyData & data)
{
...
}
...