Расскажите пожалуйста, что это за такая директория, и как это вообще работает? Суть проблемы: приложение было скомпилено на одной студии с динамической линковкой си-рантайма и MFC. Будучи запущеным на компе, на котором установлена другая студия, приложение цепляет другой рантайм, и, судя по всему из-за этого, падает на определенных действиях. Подкладывание оригинального рантайма в директорию приложения не помогает - приложение все равно цепляет рантайм другой студии. Вот тут: http://msdn.microsoft.com/en-us/library/ms682586(v=VS.85).aspx говорится, что в любом случае поиск DLL-ек должен начинаться с директории приложения, но наблюдения показывают, что это не так. Как тут быть? Я нипанимат
0x6b65 Только что посмотрел в директорию, где установлено приложение. Манифеста там нет (никакого). Можно поподробнее, как все правильно сделать?
_DEN_ Студия в ресурсы экзешника кладет манифест, где прописывана нужная ему версия рантайма. Именно эта версия рантайма смотрится в WinSxS. Просто из папки программы рантайм не грузится. Самое простое решение - линковать в статику. Из прочих вариантов - можно подкладывать в папку с экзешником name.exe.manifest - он будет заменять собой манифест из ресурсов. А вот что в нем прописывать и что им можно сделать - это уже не ко мне.
_DEN_ Если манифеста у модуля нет (ни отдельного, ни в ресурсах), то импортируемые DLL не должны подниматься из SxS. Возможно, эту RTL импортирует другой модуль (с манифестом), а ваш - просто подхватывает уже загруженную.