Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
1-9121
Baks
2002-02-16 14:30
2002.03.04
Наверно пора на пенсию...


1-9114
Alex L.
2002-02-15 18:02
2002.03.04
Объединение компонентов


7-9319
Alex Dobrushin
2001-10-25 19:36
2002.03.04
Invalid Window HANDLE, но такого я не встречал...


1-9235
lightix
2002-02-15 15:09
2002.03.04
Подскажите, как из программы передать данные в Excel?


1-9196
ДмитрийВ
2002-02-14 17:47
2002.03.04
Комплексные числа





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский