Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.03.04;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.013 c
14-9286
Alx2
2002-01-18 08:09
2002.03.04
Святая вода, или тема на злобу дня


6-9247
Snake2000
2001-12-11 12:41
2002.03.04
Срочно!!! - Post-запрос


1-9181
Johnmen
2002-02-14 12:20
2002.03.04
Кто плотно общался с DBGridEh ?


3-9049
sd
2002-02-06 07:47
2002.03.04
Возврат значений из скрипта.


1-9159
Priz_Datiy
2002-02-13 17:06
2002.03.04
Загрузка информации из файла