Сейчас на форуме: rmn, exp50848, _MBK_ (+8 невидимых)

 eXeL@B —› Основной форум —› Определить нужный рантайм
Посл.ответ Сообщение

Ранг: 590.4 (!), 408thx
Активность: 0.360.18
Статус: Модератор

Создано: 16 августа 2010 16:04
· Личное сообщение · #1

Пришел софт. При запуске вываливался с ошибкой "Не могу загрузить .dll"
Проверил .длл - оказалось хочет msvc runtime. Накатил redist-2005, 2005sp1, 2008, 2008sp1. Длл подхватилась, но теперь основная программа вылетает с Runtime ошибкой о некорректном завершении.
Судя по коду, где-то внутрях работы с CMap. Причем идет десятка 3 вызовов нормально, а потом вызов, который приводит к RaiseException.

В связи с чем вопросы:
1. Могут ли конфликтовать в пределах одного ПО рантаймы?
2. Как вычислить необходимый и достаточный рантайм?

-----
старый пень





Ранг: 331.1 (мудрец), 561thx
Активность: 0.190.06
Статус: Участник

Создано: 16 августа 2010 16:51
· Личное сообщение · #2

runtime dll нужна только для запуска проги, на саму работу проги она не влияет, так что ищите ошибку в софте.

-----
Everything is relative...




Ранг: 56.1 (постоянный), 9thx
Активность: 0.040
Статус: Участник

Создано: 16 августа 2010 17:43
· Личное сообщение · #3

>Как вычислить необходимый и достаточный рантайм?
посмотреть в импорте номер msvcrXX.dll



Ранг: 590.4 (!), 408thx
Активность: 0.360.18
Статус: Модератор

Создано: 16 августа 2010 17:51
· Личное сообщение · #4

не могу с вами согласиться. afaik, runtime - это набор длл таких как msvcrt.dll, msvcpXX.dll, msvcrXX.dll и т.д. поэтому не вижу причин говорить что "нужна только для запуска проги, на саму работу проги она не влияет".
Как будет разруливаться ситуация, если dll билдили в 2005 студии с MultiThreaded DLL опцией, а основное приложение в 2008 студии с той же опцией? Будут ли загружены рантаймы обеих версий или только новый/старый?
Является ли более новый рантайм надмножеством или конкретные версии должны быть установлены на ПК?

-----
старый пень




Ранг: 56.1 (постоянный), 9thx
Активность: 0.040
Статус: Участник

Создано: 16 августа 2010 18:11
· Личное сообщение · #5

>Является ли более новый рантайм надмножеством или конкретные версии должны быть установлены на ПК?
нет, не является

>Как будет разруливаться ситуация, если dll билдили в 2005 студии с MultiThreaded DLL опцией, а основное приложение в 2008 студии с той же опцией?
Программе наплевать, чем её компилили. У неё есть таблица импорта, в которой написано, какие библиотеки ей нужны.



Ранг: 56.2 (постоянный), 22thx
Активность: 0.030.08
Статус: Участник

Создано: 16 августа 2010 20:42
· Личное сообщение · #6

обычно в ресурсах в манифесте записывается версия и билд необходимого рантайма. Разные билды одной версии рантайма не заменяют друг-друга, а устанавливаются паралельно



Ранг: -0.9 (гость)
Активность: 0.010
Статус: Участник

Создано: 11 февраля 2011 13:08
· Личное сообщение · #7

+1, смотри в манифесте. Если рантайм с таким именем уже есть а версии в манифесте не попадают, то можно поправить манифест и тогда заработает.




Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 11 февраля 2011 13:53
· Личное сообщение · #8

Ты дату вообще видел?


 eXeL@B —› Основной форум —› Определить нужный рантайм
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати