Форум: "Прочее";
Текущий архив: 2013.10.13;
Скачать: [xml.tar.bz2];
ВнизВерсия 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;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.002 c