Вниз
Скачать: CL | DM;

DLL & Packages   Найти похожие ветки 

 
LinaIns   (2005-02-12 07:21) [0]

В программе нужно использовать плагины, которые постоянно обмениваются с основной программой динамическими массивами. Реализовала на DLL"ках, но некоторые юзеры ругаются, что иногда программа выдает ошибку (хотя свои функции выполняет).

Предлагали сделать все на Packages, которые при выполнении находятся с программой в одной области памяти и поэтому не требуют геммороя с разделением.

Насколько их использование увеличивает размер конечной программы и объем оперативной памяти, которую она занимает?


 
Eraser ©   (2005-02-12 11:42) [1]

Зачем изобретать велосипед, если он уже изобретён?
Передавай параметры, не в динамических масивах, а через PCHAR.
Или в крайнем случае используй модуль ShareMem.


 
olookin ©   (2005-02-13 15:33) [2]

[1] Eraser ©   (12.02.05 11:42)
>>Передавай параметры, не в динамических масивах, а через PCHAR.

А массивы чисел тоже через PChar?

LinaIns   (12.02.05 07:21)

Лично я в фукнцию бибилиотеки передаю указатель на массив, а не сам массив. Что несколько усложняет код в программе-вызывальщице, но зато работает без ошибок.


 
MBo ©   (2005-02-13 15:43) [3]

>которые при выполнении находятся с программой в одной области памяти
Проблема не в этом. DLL тоже работает, если можно так сказать, в адресном пространстве процесса, который ее использует.
Дело в том, что при работе с динамическими массивами и длинными строками должен быть общий менеджер памяти  - для этого используется ShareMem (о чем написано в комментарии при создании новой DLL), либо пакеты.


 
Eraser ©   (2005-02-13 16:25) [4]

olookin ©
А массивы чисел тоже через PChar?
Лично я в фукнцию бибилиотеки передаю указатель на массив, а не сам массив.


PChar это и есть указатель на массив байт.
Не обязательно использовать именно PChar.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.032 c
3-1106724534
Bogdan
2005-01-26 10:28
2005.02.27
Типы данных


14-1107446927
Piter
2005-02-03 19:08
2005.02.27
Плагин к Миранде


1-1108538265
rezo
2005-02-16 10:17
2005.02.27
Остановка службы


1-1108469073
Серж_Евдокимов
2005-02-15 15:04
2005.02.27
В проекте несколько frames. Как добавить один из них на форму


1-1108257172
VID
2005-02-13 04:12
2005.02.27
Небольшая проблемка с XP




   Наверх