Если на VC9 поставить SP1 то этот создаст новую версию CRT что-то типа 9.0.3xxxx.x, а как на неё переключиться? В манифесте внутри exe я вижу, что версия старая т.е. 9.0.21022.8.
Как компилер вообще выбирает какую версию линковать, ведь место для lib файлов не дифференцируется версиями. каша какая-то.
Я изъездил эту страну вдоль и поперек, общался с умнейшими людьми и я могу вам ручаться в том, что обработка данных является лишь причудой, мода на которую продержится не более года. (с) Эксперт, авторитет и профессионал из 1957 г.
Здравствуйте, Kingofastellarwar, Вы писали:
K>Если на VC9 поставить SP1 то этот создаст новую версию CRT что-то типа 9.0.3xxxx.x, а как на неё переключиться? В манифесте внутри exe я вижу, что версия старая т.е. 9.0.21022.8. K>Как компилер вообще выбирает какую версию линковать, ведь место для lib файлов не дифференцируется версиями. каша какая-то.
Это и не надо, lib файл лишь говорит, что надо загрузить dll X и проимпортить функции Y1,Y2,..,YN. А при запуске приложения загрузчик ОС лезит в екзешник, читает манифест и если манифест есть, загружает версию dll из WinSxS каталога. Тоже делает функция LoadLibrary если указан относительный путь.
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
Здравствуйте, Kingofastellarwar, Вы писали:
K>Если на VC9 поставить SP1 то этот создаст новую версию CRT что-то типа 9.0.3xxxx.x, а как на неё переключиться? В манифесте внутри exe я вижу, что версия старая т.е. 9.0.21022.8. K>Как компилер вообще выбирает какую версию линковать, ведь место для lib файлов не дифференцируется версиями. каша какая-то.
Макрос какой-то был, что-то вроде _BIND_TO_CURRENT_CRT
Одним из 33 полных кавалеров ордена "За заслуги перед Отечеством" является Геннадий Хазанов.
Здравствуйте, Kingofastellarwar, Вы писали:
K>Если на VC9 поставить SP1 то этот создаст новую версию CRT что-то типа 9.0.3xxxx.x, а как на неё переключиться? В манифесте внутри exe я вижу, что версия старая т.е. 9.0.21022.8.
Здравствуйте, Kingofastellarwar, Вы писали:
K>Если на VC9 поставить SP1 то этот создаст новую версию CRT что-то типа 9.0.3xxxx.x, а как на неё переключиться? В манифесте внутри exe я вижу, что версия старая т.е. 9.0.21022.8. K>Как компилер вообще выбирает какую версию линковать, ведь место для lib файлов не дифференцируется версиями. каша какая-то.
Kingofastellarwar пишет:
> Если на VC9 поставить SP1 то этот создаст новую версию CRT что-то типа > 9.0.3xxxx.x, а как на неё переключиться? В манифесте внутри exe я вижу, > что версия старая т.е. 9.0.21022.8.
Чего, таки превращается винда в юних помаленьку ?
Осталось только слэш развернуть ...
Здравствуйте, MasterZiv, Вы писали:
MZ>Kingofastellarwar пишет:
>> Если на VC9 поставить SP1 то этот создаст новую версию CRT что-то типа >> 9.0.3xxxx.x, а как на неё переключиться? В манифесте внутри exe я вижу, >> что версия старая т.е. 9.0.21022.8.
MZ>Чего, таки превращается винда в юних помаленьку ? MZ>Осталось только слэш развернуть ...
Каким местом? Что-то я не припомню, что-бы в Unix можно было бы поставить 2 версии QT4 и часть приложений заставить работать на первой, а часть на второй.
Здравствуйте, Vain, Вы писали:
V>Это и не надо, lib файл лишь говорит, что надо загрузить dll X и проимпортить функции Y1,Y2,..,YN. А при запуске приложения загрузчик ОС лезит в екзешник, читает манифест и если манифест есть, загружает версию dll из WinSxS каталога. Тоже делает функция LoadLibrary если указан относительный путь.
Откройте для себя ключ компилятора — /MT (/MTD). И не нужны будут никакие DLL, т.к. CRT будет прилинкован статически.
fdn721 пишет:
> Каким местом? Что-то я не припомню, что-бы в Unix можно было бы > поставить 2 версии QT4 и часть приложений заставить работать на первой, > а часть на второй.
Часть ты не можешь заставить работать и на винде.
А вот в Юниксах одному приложению работать с одной версией CRT, а другому — с
другой — вполне возможно.