Главная страница
    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
7-9302
Azat
2001-11-29 03:21
2002.03.04
Здравствуйте. Как узнать установленное разрешение екрана, бит цветности....


3-9054
Стас
2002-02-06 07:32
2002.03.04
QuickReport.


6-9262
Alligator
2001-12-13 15:15
2002.03.04
ClientSocket >>как перекачать файл <<ServerSocket?


1-9120
Марина
2002-02-04 16:25
2002.03.04
MessageDlg


3-9080
ARDA
2002-02-06 12:42
2002.03.04
Проблемы с Database Desktop





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский