Всем привет!
Пытаюсь реализовать следующую задумку...
Есть dll, в которой есть компонент TClientDataSet. Требуется при загрузке dll пропарсить и загрузить в TClientDataSet текстовый файл с диска. dll динамически вызывается потоком приложения, в котором этих потоков может быть много. Само приложение является сервисом.
После вызова Append, тихо без всяких сообщений вырубается поток и больше ничего... Причем этот же код нормально работает в простом приложении (не из dll).
Подскажите в чем дело? Как это обойти?
Re: TClientDataSet and DLL trouble
От:
Аноним
Дата:
17.05.04 07:17
Оценка:
Ага вот нашел причину.. не инициализирувался TDataModule...
1 int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void* lpReserved)
2 {
3 if (reason ==DLL_PROCESS_ATTACH)
4 {
5 DM = new TDM(NULL);
6 }
7 return 1;
8 }
В
Но теперь все валится на 5 строчке
Пробовал в оба проекта подключать memmgr.lib — не помогает
Пробовал вообще динамически создавать TClientDataSet,
не используя TDataModule — валится на строчке DS=new TClientDataSet(NULL);
Пробовал использовать kdbMemTable — такая же картина...
Хотя такие например объекты как TIniFile и TTimer нормально создаются динамически и работают.
Пробовал вызывать эту же DLL из обыкновенного приложения а не из потока сервиса — РАБОТАЕТ!
Но как сделать, чтобы это заработало из сервиса?