Форум: "Основная";
Текущий архив: 2002.03.04;
Скачать: [xml.tar.bz2];
ВнизHelp!!! Найти похожие ветки
← →
romulas (2002-02-15 18:20) [0]Доброго вечера All!!!
Вот такой вопрос....
Написал я Dll в 5 Делбфи, для того чтобы перекинуть указатель на TDataSet в Dll использовал ShareMem и в Dll, и в вызывающей программе. Но при добавлении ShareMem к вызывающей программе - при закрытии оной вылетает Exception: Project raised exception class EInvalidPointer with Message "Invalid Pointer Operation" ну и т. д. Как обойти грабли???
Большое спасибо...
← →
Digitman (M) (2002-02-15 18:49) [1]надо понимать - ты уже отказался от благой идеи найти-таки, почему DLL, в билдере тобой же "сверстанная", не работает как положено ?) Напрасно, напрасно ....
ShareMem should always be the first unit listed in any program or library uses clause where it occurs.
(ShareMem должен идти первым в списке модулей раздела USES.)
Только непонятно - зачем ?
If a DLL exports routines that pass long strings or dynamic arrays as parameters or function results (whether directly or nested in records or objects), then the DLL and its client applications (or DLLs) must all use the ShareMem unit. The same is true if one application or DLL allocates memory with New or GetMem which is deallocated by a call to Dispose or FreeMem in another module.
Соблюдается ли хотя бы одно из условий в экспортируемом тобой DLL-вызове, требующее, согласно описанию, обязательного задействования модуля ShareMem ?
← →
romulas (2002-02-15 19:23) [2]Да не то что бы я отказался... Просто время поджимает...
Правильно, никакой памяти я ничем не выделял... Но без использования этого юнита указатель просто не передается, вот и все... Выяснил просто опытным путем...
При взаимодействии CBuilder-CBuilder проблем нет, а во всех остальных случаях указатель просто не передается...
Так что как правильно в Дельфи реализовать передачу TDataSet в Dll???
← →
romulas (2002-02-15 19:39) [3]Вот теперь я решил проблему. По крайней мере одну... Если в вызывающей программе на Delphi поставить ShareMem, то она начинает работать и с Builder dll...
Но проблема при выходе у приложения остается :-))
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.03.04;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.004 c