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

Вниз

ShareMem: конфликт версий   Найти похожие ветки 

 
RWolf ©   (2009-05-24 14:28) [0]

Есть программа на D5, которая загружает DLL, собранную под 2009. При выгрузке DLL-ки получаем AV. По-видимому, это связано с разными версиями ShareMem, так как DLL-ка, скомпилированная под той же D5, выгружается корректно.
Как правильнее всего будет обойти ситуацию? Есть ли способ согласовать менеджеры памяти приложения и библиотеки, собранных под разными версиями Delphi, или нужно смотреть в сторону отказа от ShareMem?


 
RWolf ©   (2009-05-24 14:33) [1]

да, пробовал тестировать приложение с библиотеками borlndmm.dll из обоих дистрибутивов Delphi, проблема повторяется.


 
Palladin ©   (2009-05-24 14:33) [2]


> или нужно смотреть в сторону отказа от ShareMem?

нужно


 
Slym ©   (2009-05-24 17:40) [3]

RWolf ©   (24.05.09 14:28)
попробуй другой менеджер памяти... FastMem


 
RWolf ©   (2009-05-24 18:03) [4]


> попробуй другой менеджер памяти... FastMem

FastMM?
Нашёл ещё страничку менеджера FastShareMem.


 
DVM ©   (2009-05-24 23:40) [5]


> RWolf ©  

А что библиотека то делает? Может, действительно ShareMem то и не нужен?


 
Slym ©   (2009-05-25 05:30) [6]

RWolf ©   (24.05.09 18:03) [4]
FastMM

он самый... у него в комплекте есть замена для borlndmm.dll


 
RWolf ©   (2009-05-25 16:58) [7]


> А что библиотека то делает? Может, действительно ShareMem
> то и не нужен?

Библиотека обменивается с приложением строками.


 
oxffff ©   (2009-05-25 17:18) [8]


> RWolf ©   (25.05.09 16:58) [7]


Ну дык а как объявлены строки в DLL наd2009?
Какой у них тип?
ansistring? или UnicodeString?


 
DVM ©   (2009-05-25 17:35) [9]


> RWolf ©   (25.05.09 16:58) [7]


> Библиотека обменивается с приложением строками.

Откажись от string в пользу PCHAR и обменивайся на здоровье. А еще лучше сделать так, чтобы память под строку выделяла не библиотека, а приложение, тогда вообще все будет замечательно.


 
RWolf ©   (2009-05-26 11:34) [10]


> Ну дык а как объявлены строки в DLL наd2009?Какой у них
> тип?ansistring? или UnicodeString?

строки — ansistring в 2009 и string в пятёрке.

> Откажись от string в пользу PCHAR и обменивайся на здоровье.

можно, но неудобно; если есть полноценная замена sharemem, то я предпочел бы не переделывать интерфейс.



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

Текущий архив: 2010.03.21;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.01 c
2-1263902707
12345
2010-01-19 15:05
2010.03.21
Рабата с Canvas TImage


2-1263562192
fford
2010-01-15 16:29
2010.03.21
вызов функции из потока


2-1263378348
legion25
2010-01-13 13:25
2010.03.21
Вычисление суммы ряда с точностью ε


2-1263934328
@!!ex
2010-01-19 23:52
2010.03.21
Как подогнать размеры TRichEdit под текст в нем


15-1262571775
uw
2010-01-04 05:22
2010.03.21
Что и требовалось доказать