Русский / Russian English / Английский

Сейчас на форуме: (+2 невидимых)
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · RSS ·

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

Ранг: 590.8 (!)
Статус: Модератор

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

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

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




Ранг: 331.1 (мудрец)
Статус: Участник

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

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



Ранг: 56.1 (постоянный)
Статус: Участник

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

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



Ранг: 590.8 (!)
Статус: Модератор

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

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



Ранг: 56.1 (постоянный)
Статус: Участник

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

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

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



Ранг: 56.2 (постоянный)
Статус: Участник

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

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



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

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

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




Ранг: 2014.5 (!!!!)
Статус: Модератор
retired

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

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


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

Видеокурс ВЗЛОМ