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

Вниз

Версия borlndmm.dll ...   Найти похожие ветки 

 
sniknik ©   (2013-04-12 15:44) [0]

Есть приложение использующее вот эту самую "шаред мемори длл", стороннее приложение, старое, без исходников...
А вот сейчас нужно переписать одну из его "dll-ек" (сменились адреса/логика работы с сервером в ней реализованная)... причины не важны, но... захаркодить то что логично настраивать... нет слов.

Неважно, вопрос вот чем, версия dll в "семерке" - 7.0.4.453, версия в программе - 5.0.6.18 (пятая дельфя?), будет ли совместимость? Т.е. написать на семерке (D7) dll, для использования с версией программы (от 5-ки)...
Кто в курсе, а то я весь в сомнениях... Будет проблемы? Решаемы? Или вот прямо сейчас начинать искать 5ю дельфю?


 
Схимник   (2013-04-12 15:57) [1]

TDUMP.EXE borlndmm.dll  > 1.txt
Затем сравнить секции импорта/экспорта.

Судя по тому что вижу проблем быть не должно. DLL практически одинаковы.
Хотя под D5 размер 25600, а под D7 22528.


 
sniknik ©   (2013-04-12 16:20) [2]

> Судя по тому что вижу проблем быть не должно. DLL практически одинаковы.
Надежда умирает последней... сказала Вера, и пристрелила Любовь. ;)

p.s. Хорошо если "не должно", и главное если не будет.


 
Игорь Шевченко ©   (2013-04-12 17:00) [3]


> будет ли совместимость?


Будет


 
брат Птибурдукова   (2013-04-12 17:53) [4]

Продукты шестой и четвёртой делфы кое-как взаимодействовали (и «кое-как» — не из-за shared memory)…


 
Pavia ©   (2013-04-12 18:38) [5]


> > будет ли совместимость?Будет

А не чего что там формы разный формат имеют?


 
sniknik ©   (2013-04-12 19:49) [6]

В общем проверил, сделал "пустышку" с полным набором функций (связывание статическое), и двумя первыми вызываемыми (версия, и инициализация), проблем нет. Хотя на инициализации "полный набор" из "нестандартных" параметров... строки, рекорды, динамический массив из них.
Похоже поиск D5 отменяется. :)


 
Юрий Зотов ©   (2013-04-12 19:58) [7]


> sniknik ©   (12.04.13 15:44)  

Переводил я один проект с D5 на D7. В нем была DLL и тоже с ShareMem. DLL перепиливать не пришлось, проблем не возникло.

Хотя, наверное, возникновение проблем может зависеть еще и от того, что конкретно в этой DLL зашито.


 
Юрий Зотов ©   (2013-04-12 20:03) [8]


> > sniknik ©   (12.04.13 15:44)  

Помню, что при этом переходе пришлось править работу с вариантами (VarIsNull, VarIsEmpty и т.п.). В D5 и D7 там есть какая-то разница, но какая конкретно - не помню.

Поэтому - если в DLL есть работа с вариантами, то можно нарваться.


 
robt   (2013-04-12 21:05) [9]

первый взлом ХЕ3 основан кокраз на этой либе


 
sniknik ©   (2013-05-06 12:37) [10]

В продолжение темы (связано), переписка dll закончена, проблем (именно с borlndmm.dll) нет... но...
Там какая-та странность с возвратом строк из функций, в доке по использованию написано string, но на деле возвращает просто указатель... даже не PChar (разница есть).
В общем, получено дебагером, есть последовательность перед выходом из функций -
LocalAlloc
LocalLock
Move
LocalUnLock

понятная в принципе, выделение виндового обьекта, блока памяти, с копированием в него данных из строки.
Возвращается указатель (результат функции LocalLock), ни разу не string, но да ладно, все повторили аналогично, работает (а вот возврат "честного" PChar приводит к AV, т.е. ждут указатель именно на обьект)...
НО, остался вопрос. По идее нужно освобождение (т.к. LocalAlloc вызывается с 0 т.е. LMEM_FIXED т.е. нужен LocalFree) которое делается по хендлу, а хендл из dll не возвращается...
Есть возможность "в обратку" получить из указателя хендл (или освободить выделенную LocalAlloc по указателю)?

В общем программа как то освобождает память/хендл, как? Или просто на это "забивает"? По идее не должна, т.к. компы/программа работают месяцами не выключаясь, нехватки памяти не замечено.

Кстати вообще нафига такой способ при использовании borlndmm.dll не понятно, а она используется точно (параметрами внутрь передаются именно строки, проверено по "префиксу" рекорду до указателя, и + есть стринглист на "вход", а вот с возвратом зачем то извратились...)
(это не вопрос :))



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

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

Наверх




Память: 0.49 MB
Время: 0.005 c
15-1367785803
Юрий
2013-05-06 00:30
2013.10.13
С днем рождения ! 6 мая 2013 понедельник


1-1316547907
adigozelov
2011-09-20 23:45
2013.10.13
How to compare two object


15-1367311932
Artem
2013-04-30 12:52
2013.10.13
Как написать такое клиент-серверное ПО на языке С?


2-1358780606
Аскалот
2013-01-21 19:03
2013.10.13
PaintBox и другие


15-1367613003
Юрий
2013-05-04 00:30
2013.10.13
С днем рождения ! 4 мая 2013 суббота