![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
совместимость менеджеров памяти [D5, D7, FB1.0x, FB1.5]
Desdechado © (2004-05-11 12:55:00)При написании UDF активно использую msvcrt.dll
А недавно где-то наткнулся на инфу, что менеджеры памяти VC6 и VC7 несовместимы между собой. В системе стоит msvcrt.dll 7.0.2600, а FB скомпилирован, насколько мне известно, с использованием версии 6.
Будет ли оно жить дружно или возможны грабли с утечкой памяти и даже падежом сервера?
В FB1.5 CS подкладывается msvcrt шестой версии, а в 1.0х не подкладывается. Нужно ли самому что-то мудрить?
И с UDF что-то делать надо?
Desdechado (2004-05-12 18:00:00) [1]Заказчики - народ странный. А клиент всегда прав. Ну хотят они, например, обратную совместимость БД с IB6 или у них на том же сервере крутятся другие задачи, жестко завязанные на версию сервера... Всего не знаю.
Спасибо за исчерпывающие ответы.
Digitman (2004-05-12 17:22:00) [2]
> Сервер FB1.5 по некоторым соображениям не всех заказчиков
> устраивает
можно ли полюбопытствовать, по каким конкретно ?
> msvcrt7.dll или msvcrt70.dll отсутствуют напрочь
7-ка в версионных св-вах этого модуля вряд ли означает принадлежность оного к среде MSVC7 ... насколько мне известно, 7-шная среда MSVC требует к использованию разработанных в ней приложений ран-тайм-модуля msvcr70.dll... могу, конечно, ошибаться, но суть в том, что msvcrt.dll не м.б. использован с приложениями, написанными в 7-шной среде, ибо даже состав эксп.ф-ций в ней отличается от предыдущих версий ... так что ориентироваться на версию продукта в св-вах файла не стоит
Desdechado (2004-05-12 17:02:00) [3]Сервер FB1.5 по некоторым соображениям не всех заказчиков устраивает. Приходится и FB1.03 поддерживать.
Desdechado (2004-05-12 16:49:00) [4]у меня на XP в system32\msvcrt.dll имеет в сигнатуре версию 7.0.2600.1106 - это все-таки от VC6 или от VC7 библиотека?
msvcrt7.dll или msvcrt70.dll отсутствуют напрочь
Digitman (2004-05-12 11:44:00) [5]
> FB1.0x скомпилирован на VC6
а зачем тебе FB1.0x ? вчерашний же день уже эта версия ...
FB1.5 RC9 - вполне стабильный сервер
> Что в этих условиях вызывает ib_util да и сам сервер?
поскольку в каталоге \bin нет msvcrt.dll, ib_util и сам сервер будут грузить имеющуюся в system32 версию сишной ран-тайм библ-ки
7-я же версия сишной ран-тайм библ-ки даже называется по иному - msvcr70.dll
Digitman (2004-05-12 11:31:00) [6]на сей момент в использовании ib_util.dll для означенных целей нет никаких проблем, но есть и один недостаток - отсутствие ф-ций реаллокации/деаллокации блоков ... это может серьезно повлиять на возможность адаптации сущ-щих UDF, использовавших до сего момента ф-ции msvcrt.realloc()/free()
По мнению Димы Еманова, недостатком это считать не следует, ибо это продиктовано, якобы, соображениями совместимости с предыд.версиями сервера (в т.ч. IB-сервера), но принципиальных возражений против экспорта библ-кой ib_util.dll в некоем будущем упомянытых ф-ций он как бы не имеет
Desdechado (2004-05-12 11:30:00) [7]Но FB1.0x скомпилирован на VC6, а рядом с ним нет msvcrt.dll от шестерки. А в SYSTEM32 только от семерки. Что в этих условиях вызывает ib_util да и сам сервер?
Digitman (2004-05-12 11:23:00) [8]
> с UDF что-то делать надо?
если ты в UDF пользуешь менеджер памяти по соглашению с FB для возврата результатов ф-ций в аллокированных тобой блоках, то для этих задач следует пользовать ф-цию ib_util_malloc() в составе библ-ки ib_util.dll, всегда фигурирующей в штатной поставке дистрибутива сервера
ib_util.dll сама знает, какую "правильную" сишную библ-ку следует использовать для аллокации блоков памяти, ib_util.dll компилируется и собирается разработчиками в той же среде, что и прочие функц.модули серверной части
настоятельная рекомендация разработчиков использовать ib_util.ib_util_malloc() вместо msvcrt.malloc() или msvcrXX.malloc() связана как с потенциальным переходом на MSVC7 (как среды разработки FB), так и с потенциальной кроссплатформенностью серверного продукта
Desdechado (2004-05-12 11:07:00) [9]up