Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / C++ Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 msvcp80.dll динамический линк и проблемы  [new]
ErV
Member

Откуда:
Сообщений: 2040
Здравствуйте!
Использую Qt 4.1.4 + MSVS2005 - приложение с динамическим подключением CRT (mvscp80.dll, msvcr80.dll). Нужно СРОЧНО перекинуть прилложение на компьютер где этих библиотек, скорее всего, нет. Насколько знаю, приложения, использующие msvcp80.dll/msvcr80.dll не рабоают, даже если dll находится в той же папке, но не прописана каким-то образом (мне не известным) через *.manifest'ы. Как я понимаю, *.manifest'ы относятся к .NET FrameWork, а я его не использую. Как компилить программу с динамическим линком, так чтобы работала на других машинах?
29 сен 06, 00:42    [3199509]     Ответить | Цитировать Сообщить модератору
 Re: msvcp80.dll динамический линк и проблемы  [new]
ErV
Member

Откуда:
Сообщений: 2040
Чуть-чуть поковырял справку, и выяснил, что для этого нужно делать "проект-инсталлятор", и что это околесица с манифестами есть последствия новой системы подгрузки dll. А человеческий вариант решения есть? Прога в архиве *.rar весит 1.8 метра, в инсталляторе с vcredist_86.exe - пять с половиной метров и, ясен пень, не сжимается. Это что, для каждой мелочи инсталлятор писать/делать? Как это все можно по-нормальному решить? (Есть, конечно, вариант - сменить операционную систему :))
29 сен 06, 02:56    [3199575]     Ответить | Цитировать Сообщить модератору
 Re: msvcp80.dll динамический линк и проблемы  [new]
kolobok0
Member

Откуда:
Сообщений: 1848
ErV
Чуть-чуть поковырял справку, и выяснил, что для этого нужно делать "проект-инсталлятор", и что это околесица с манифестами есть последствия новой системы подгрузки dll. А человеческий вариант решения есть? Прога в архиве *.rar весит 1.8 метра, в инсталляторе с vcredist_86.exe - пять с половиной метров и, ясен пень, не сжимается. Это что, для каждой мелочи инсталлятор писать/делать? Как это все можно по-нормальному решить? (Есть, конечно, вариант - сменить операционную систему :))


в новой системе мона и по старому...
строите обычный солюшен...обычные проекты...обычный C++...ссылки на дэлеле не нуна делать...нужно только прилинковать либы описывающие вентиля вызовов из этих дэлеле...


(круглый)
29 сен 06, 13:38    [3202247]     Ответить | Цитировать Сообщить модератору
 Re: msvcp80.dll динамический линк и проблемы  [new]
ErV
Member

Откуда:
Сообщений: 2040
kolobok0
ErV
Чуть-чуть поковырял справку, и выяснил, что для этого нужно делать "проект-инсталлятор", и что это околесица с манифестами есть последствия новой системы подгрузки dll. А человеческий вариант решения есть? Прога в архиве *.rar весит 1.8 метра, в инсталляторе с vcredist_86.exe - пять с половиной метров и, ясен пень, не сжимается. Это что, для каждой мелочи инсталлятор писать/делать? Как это все можно по-нормальному решить? (Есть, конечно, вариант - сменить операционную систему :))


в новой системе мона и по старому...
строите обычный солюшен...обычные проекты...обычный C++...ссылки на дэлеле не нуна делать...нужно только прилинковать либы описывающие вентиля вызовов из этих дэлеле...


(круглый)

Можно по-подробнее? ГДе взять/как получить "либы описывающие вентиля вызовов из этих дэлеле"?

Есть, конечно, вариант ещё статического линка, но, блин, в комбинации с Qt - там поддержка плагинов отключается(прощай, png, jpeg и т.д.) и экзэшники получаются здоровые.
29 сен 06, 13:45    [3202319]     Ответить | Цитировать Сообщить модератору
 Re: msvcp80.dll динамический линк и проблемы  [new]
kolobok0
Member

Откуда:
Сообщений: 1848
ErV
...Можно по-подробнее? ГДе взять/как получить "либы описывающие вентиля вызовов из этих дэлеле"?...


млин...
1) есть статические библиотеки... Выглядят как obj(тники) сваленные в общие файлы - библиотеки (либы). При объявлении переменных, классов, функций юзаете ашник ..Линковщику указываете соответствующие либы... Из данных либов тянуться либо все(зависит от линковщика), либо только указанные объектники...
2) есть динамические библиотеки...Различают два способа загрузки..
а) явный...
б) не явный...

а) явный... в коде явно пишете - лоад лайбрэри...гэт бла-бла-бла и по этому гэт делаете вызов (я это обозвал вентелем - возможно не корректно)...
б) не явно..(о чём шла речь в предыдущем топике)... как и при статике - юзаете ашник для объявления этих переменных, классов, функций...Линковщику так же указываете ЛИБ файлы в которых скрыта подгрузка указанной дэлеле (а не обжик файлы как в статике!!!), связывание по адресам, инициализация контекста выполнения и прочей мишуры... Эти либы поставляются производителем дэлеле (вроде как потащить их автоматом низзя - хотя тут могу ошибаться...)

с уважением
(круглый)
29 сен 06, 14:04    [3202509]     Ответить | Цитировать Сообщить модератору
 Re: msvcp80.dll динамический линк и проблемы  [new]
ErV
Member

Откуда:
Сообщений: 2040
kolobok0
ErV
...Можно по-подробнее? ГДе взять/как получить "либы описывающие вентиля вызовов из этих дэлеле"?...

е корректно)...
б) не явно..(о чём шла речь в предыдущем топике)... как и при статике - юзаете ашник для объявления этих переменных, классов, функций...Линковщику так же указываете ЛИБ файлы в которых скрыта подгрузка указанной дэлеле (а не обжик файлы как в статике!!!), связывание по адресам, инициализация контекста выполнения и прочей мишуры... Эти либы поставляются производителем дэлеле (вроде как потащить их автоматом низзя - хотя тут могу ошибаться...)

с уважением
(круглый)

Идею, кажется, понял, но, извините, разве не этот метод используется по умолчанию для динамического линка/crt в dll? - линкуется msvcrt.lib, а он подгружает msvcr80.dll. Если не этот метод, как тогда эти *.lib ы называются? Они должны входить в состав visualStudio (раз производитель майкрософт), но это явно не libcmt.lib и не msvcrt.lib.

Кроме того, на msdn было сказано, что новые dll'ки детектируют "неправильные" сценарии загрузки, и выдают сообщения об ошибке инициализации. (сам вчера убедился).
29 сен 06, 14:27    [3202728]     Ответить | Цитировать Сообщить модератору
 Re: msvcp80.dll динамический линк и проблемы  [new]
MasterZiv
Member

Откуда: Питер
Сообщений: 34345
Да сотри ты нафиг этот манифест, и будет счастье !! Должно быть, по крайней мере.
29 сен 06, 14:30    [3202769]     Ответить | Цитировать Сообщить модератору
 Re: msvcp80.dll динамический линк и проблемы  [new]
kolobok0
Member

Откуда:
Сообщений: 1848
ErV
....разве не этот метод используется по умолчанию для динамического линка/crt в dll? - линкуется msvcrt.lib, а он подгружает msvcr80.dll. Если не этот метод, как тогда эти *.lib ы называются? Они должны входить в состав visualStudio (раз производитель майкрософт), но это явно не libcmt.lib и не msvcrt.lib.Кроме того, на msdn было сказано, что новые dll'ки детектируют "неправильные" сценарии загрузки, и выдают сообщения об ошибке инициализации. (сам вчера убедился).


кхм... тут вот я и задумался..гы...
давайте вот что...как Вы подключаете CRT. типа стэп бай стэп...

работаю с 2005 - на ругань не натыкался...самому стало интересно...

(круглый)
29 сен 06, 14:33    [3202802]     Ответить | Цитировать Сообщить модератору
 Re: msvcp80.dll динамический линк и проблемы  [new]
kolobok0
Member

Откуда:
Сообщений: 1848
MasterZiv
Да сотри ты нафиг этот манифест, и будет счастье !! Должно быть, по крайней мере.


во-во...и у меня первая мысля такая была...посему выше и написал - стандартным макаром прилинковать и усе дела...кхм..

(круглый)
29 сен 06, 14:34    [3202812]     Ответить | Цитировать Сообщить модератору
 Re: msvcp80.dll динамический линк и проблемы  [new]
ErV
Member

Откуда:
Сообщений: 2040
kolobok0

кхм... тут вот я и задумался..гы...
давайте вот что...как Вы подключаете CRT. типа стэп бай стэп...

работаю с 2005 - на ругань не натыкался...самому стало интересно...

(круглый)

Solution Explorer -> Project Properties-> Configuration Properties -> C/C++ -> Code Generation -> Runtime Library -> Multi-threaded DLL (/MD)

Прога на заказ. По умолчанию предполагается наихудший (и наиболее реальный) вариант, что на машине заказчика этих dll'лек нет. Соответственно, первая мысль приходит в голову - скинуть их в папку с прогой. (для чистоты эксперимента блокирую все пути, где эта dll'ка живет) НЕ РАБОТАЕТ. Пишет либо "не удается выполнить программу", либо что-то в этом духе. Копируем туда манифест от всего этого из папки "MSVS2005\VC\redist\x86\Microsoft.VC80.CRT". Не работает. Выдает "ошибка инициализации приложения". Убить манифест нельзя - работать не будет вообще никак, только со статическим линком.

Лезем в инет. Выясняем, что майкрософт рекомендует использовать Setup Project для этого, либо запускать vcredist_x86.exe на целевой машине (он создаст папки C:\WINDOWS\WinSxS\x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_8.0.50727.42_x-ww_0de06acd и проинсталлирует манифест, иначе никак). Делаю сетап. Получается 5,6 метра! Денег на трубе не хватит, чтобы прогу отправить в таком виде, а ночью салон связи не работает. Более того, судя по всему этот самый vcredist_x86.exe не той версии, отличен от того, который у меня. Значит, может не заработать, либо заглючить.

Далее, читаем msdn, выясняем, что это все есть новая технология распространения dll, и то ли dll, то ли приложение БУДЕТ ОПРЕДЕЛЯТЬ "НЕПРАВИЛЬНЫЙ" СЦЕНАРИЙ, и отказываться работать, сообщая о "неправильной настройке" или "ошибке инициализации"!

Ну и что делать, уважаемые? Этот вариант для меня, мягко говоря, неудобен...
29 сен 06, 19:16    [3204669]     Ответить | Цитировать Сообщить модератору
 Re: msvcp80.dll динамический линк и проблемы  [new]
ErV
Member

Откуда:
Сообщений: 2040
И еще - с отключенным манифестом, программа ругается, если в папке нет msvcr80.dll и msvcp80.dll, если же они там есть, выдает следующее:

К сообщению приложен файл. Размер - 0Kb
29 сен 06, 19:45    [3204752]     Ответить | Цитировать Сообщить модератору
 Re: msvcp80.dll динамический линк и проблемы  [new]
Ggg_old
Member

Откуда: Одесса
Сообщений: 1342
писали бы на vs2003 и не было бы проблем....
29 сен 06, 21:46    [3205140]     Ответить | Цитировать Сообщить модератору
 Re: msvcp80.dll динамический линк и проблемы  [new]
ErV
Member

Откуда:
Сообщений: 2040
Ggg_old
писали бы на vs2003 и не было бы проблем....

в vs2005 среда разработки лучше. в 2003 - компилятор. :) Самый быстрый был в vc6.5. Ещё бы это все собрать все вместе в одну кучу, так было бы вообще хорошо.
Проблему решил инсталлятором (кстати, на машине клиента этих библиотек, само собой, не было), но это не вариант. Нужны другие решения. Кто-нибудь их знает?
30 сен 06, 00:51    [3205943]     Ответить | Цитировать Сообщить модератору
 Re: msvcp80.dll динамический линк и проблемы  [new]
Ggg_old
Member

Откуда: Одесса
Сообщений: 1342
2ErV:
Я 2005-й не смотрел, поэтому в пару словах опишите, что вам нравится в IDE2005-го по отношению к чистому С++ и чего не было в 2003.
Из некоторых обзоров, я понял, что все "красоты" 2005 касаются именно .Net-приложений (дизайнеры форм, визарды и пр). Зато есть куча проблем с портированием различных решений под 2005 (я отслеживаю стоны по поводу портирования CORBA С++ на 2005-й), ну и геморой, который вы описали.

При работе с QT все дизайнеры идут вместе с QT и интегрируются в IDE. Добавить еще Visual Assist и работать с кодом становится гораздо приятнее.
30 сен 06, 11:28    [3206304]     Ответить | Цитировать Сообщить модератору
 Re: msvcp80.dll динамический линк и проблемы  [new]
ErV
Member

Откуда:
Сообщений: 2040
Ggg_old
2ErV:
Я 2005-й не смотрел, поэтому в пару словах опишите, что вам нравится в IDE2005-го по отношению к чистому С++ и чего не было в 2003.
Из некоторых обзоров, я понял, что все "красоты" 2005 касаются именно .Net-приложений (дизайнеры форм, визарды и пр). Зато есть куча проблем с портированием различных решений под 2005 (я отслеживаю стоны по поводу портирования CORBA С++ на 2005-й), ну и геморой, который вы описали.

При работе с QT все дизайнеры идут вместе с QT и интегрируются в IDE. Добавить еще Visual Assist и работать с кодом становится гораздо приятнее.

Видите ли, мне 2005 нравится именно из-за IDE. Я при работе использую шрифт нефиксированной ширины (т.е. - не monospace, так ещё Строуструп советовал), и делаю все панели AutoHide - мне так удобней - мышью я почти не пользуюсь, а они все одним клавиатурным аккордом вызываются. (см рисунок, извиняюсь за зверское качество).

2003 меня постоянно доставал одним мелким глюком - через несколько build'ов панель Warnings уползала каким-то образом вниз среды так, что не был виден даже заголовок, и её надо было выковыривать оттуда мышью. Второй глюк - это вечные проблемы с IntelliSense (работал только в 15% случаев), который мне необходим. В 2005 эти проблемы решили, но, к сожалению (извиняюсь), изгадили язык, CRT-библиотеку(путем добавления различных функций типа strmp_s), убрали SingleThreaded библиотеку. Касательно Corba ничего не могу сказать, так как базами данных не занимаюсь ВООБЩЕ.
Также там сделали одну гадость, которая проявилась при компиляции Qt. CustomBuild tool теперь и должен называться CustomBuildTool. Если при генерации vcproj файлов он будет назван "moc"(как и было), то при загрузке он будет полностью проигнорирован. Мне, чтобы это исправить, пришлось лезть в исходники qmake и исправлять...

В общем, IDE в 2005, как, мне кажется, фактически уже финальная версия, и очень удобен, можно сказать, что почти идеален. Мне, по крайней мере, так кажется. По-моему, эта первая версия в MSVC, которая по удобству подобралась к тому уровню, на котором была Borland Delphi 5. :)

ОДнако, те изменения, которые были произведены в компиляторе, CRT, механизме загрузки библиотек, огорчают и настораживают. Как я понимаю, strcmp_s, к примеру - уже далеко не стандарт, и человек, который его использует, не сможет потом быстро перенести свой код на другой компилятор. То же самое касается "легких решений" при помощи .Net, Windows Forms и MFC... Но это ИМХО...

Так что касательно проблемы с CRT, уважаемые? Можно как-нибудь его по-нормальному подключить? Или мне кастом билд CRT делать с отключенным механизмом (если возможно)? Или на опенсорс переходить?

К сообщению приложен файл. Размер - 0Kb
30 сен 06, 13:46    [3206471]     Ответить | Цитировать Сообщить модератору
 Re: msvcp80.dll динамический линк и проблемы  [new]
ErV
Member

Откуда:
Сообщений: 2040
Ggg_old
2ErV:
При работе с QT все дизайнеры идут вместе с QT и интегрируются в IDE. Добавить еще Visual Assist и работать с кодом становится гораздо приятнее.

Кстати, можно по-подробнее по этому поводу? У меня Qt 4.1.4 OpenSourceEdition, и никакой интеграции там вроде как и нет... Я единственное - назначил открытие файлов *.ui QtDesigner'ом и все... Но это же не интеграция?

Если вам не трудно - пару слов по поводу VisualAssist - давно про него слышу, но ни разу не видел. Что за вещь?
30 сен 06, 13:49    [3206473]     Ответить | Цитировать Сообщить модератору
 Re: msvcp80.dll динамический линк и проблемы  [new]
Ggg_old
Member

Откуда: Одесса
Сообщений: 1342
У меня все панели настроены как аутохайд. Окно с ворнингами никогда не уползало. Да, intellisence в 2003 работает крайне погано. Visual Assist встраивается в студию как родной, заменяет собой intellisence и заметно расширяет его. Работает - как мечтается и лучше чем ожидаешь. После него ни про что другое вспоминать не хочется. Это как-бы мастхэв на сегодняшний день. Лучше качните триал, попробуйте, оцените. Лекарство от триала легко находится в инете.
К QT идет т.н. интегратор. Он есть отдельно под кокретные версии VS IDE, и есть универсальный - под все версии. Вы мне на мыло в профайле напишите, одну хорошую ссылочку пришлю.
Что я не смог забороть - не запоминает VS2003 состояние фолдинга (свернут/развернут). При открытии файла все развернуто.
30 сен 06, 17:20    [3206681]     Ответить | Цитировать Сообщить модератору
 Re: msvcp80.dll динамический линк и проблемы  [new]
kolobok0
Member

Откуда:
Сообщений: 1848
ErV
....Ну и что делать, уважаемые? Этот вариант для меня, мягко говоря, неудобен...


что делать - уже ответил Вам выше...могу сказать ЧЁТКО следующее...

MSVC2005

работаю как обычно на сях, си плас плас, и си шарпе... проблем о которых Вы говорите - НЕ встречал...

файлик включающий в ся MFC весит "всего" 600 kb...

возникает вопрос...
пустая ли у вас закладка по следующему путю...

Solution Explorer -> Project Properties-> Common Properties -> References

поле Name должно быть ПУСТЫМ !!! и проект должен быть обычным, без всяких менэджэт си плас плас...

(круглый)
ЗЫ
сдаёться мне, что идёт попытка заюзать дот нет...
2 окт 06, 14:03    [3210440]     Ответить | Цитировать Сообщить модератору
 Re: msvcp80.dll динамический линк и проблемы  [new]
ErV
Member

Откуда:
Сообщений: 2040
kolobok0

возникает вопрос...
пустая ли у вас закладка по следующему путю...

Solution Explorer -> Project Properties-> Common Properties -> References

поле Name должно быть ПУСТЫМ !!! и проект должен быть обычным, без всяких менэджэт си плас плас...

Пустая.

kolobok0
[quot ErV]работаю как обычно на сях, си плас плас, и си шарпе... проблем о которых Вы говорите - НЕ встречал...

файлик включающий в ся MFC весит "всего" 600 kb...

Вопрос не в MFC (не использую). Требуется создать приложение с динамически подключаемым CRT в DLL. Если манифест embedded, то при попытке запуска приложения на машине без DLL пишет, "DLL не найдена". Если в папке есть, пишет, если не ошибаюсь, что "приложение направильно настроено". Ему нужен каталог в C:\Windows\WinSxS. Если манифест отключить, при наличии DLL пишет сообщение о неверной инициализации (вышеукзанное R3034 "An application has made an attempt to load C runtime library incorrectly). Вариант со статичным линком неприемлим.
2 окт 06, 14:24    [3210587]     Ответить | Цитировать Сообщить модератору
 Re: msvcp80.dll динамический линк и проблемы  [new]
kolobok0
Member

Откуда:
Сообщений: 1848
ErV
...Требуется создать приложение с динамически подключаемым CRT в DLL. Если манифест embedded, то при попытке запуска приложения на машине без DLL пишет, "DLL не найдена"....


давайте по порядку...
берём студию..
запускаем визард проектов...
выбираем...чаво ? (ну и далее стэп-бай стэп, до пустой формочки)..чтоб компильнуть и получить проблемы..лады ? может что умное и придёт в голову...


с уважением
(круглый)
2 окт 06, 14:43    [3210709]     Ответить | Цитировать Сообщить модератору
 Re: msvcp80.dll динамический линк и проблемы  [new]
ErV
Member

Откуда:
Сообщений: 2040
kolobok0
ErV
...Требуется создать приложение с динамически подключаемым CRT в DLL. Если манифест embedded, то при попытке запуска приложения на машине без DLL пишет, "DLL не найдена"....


давайте по порядку...
берём студию..
запускаем визард проектов...
выбираем...чаво ? (ну и далее стэп-бай стэп, до пустой формочки)..чтоб компильнуть и получить проблемы..лады ? может что умное и придёт в голову...


с уважением
(круглый)

Ok.

В MSVS2005:
File->New->Project
Win32->Win32 Project
имя "trash" :), "Create Directory for solution" checked.
жмем OK.

В визарде:
Application Settings->Windows Application,
отмечаем "empty project".
жмем "Finish"

Alt+Ctrl+L (вызов Solution Explorer)
на проекте жмем Shift+Ctrl+A (Add new item)
выбираем VisualC++->C++ file.
обзываем его "main"
жмем "Add"

печатаем:
#pragma once
#include <windows.h>

int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int){
	MessageBox(0, TEXT("test"), 0, MB_OK|MB_SETFOREGROUND);
	return 0;
}

Alt+F7(project properties)
Configuration Properties->Linker->Manifest File::Generate Manifes - "No"
Жмем "ОК".

F7. (Build)
Ctrl+F5 (Run);
получаем "приложению не удалось запуститься поскольку MSVCR80D.dll не был найден. Повторная установка приложения может исправить эту проблему". MSVCR80Dтак как билд дебажный.
лезем в "$(MSVSDIR)\VC\redist\Debug_NonRedist\x86\Microsoft.VC80.DebugCRT", копируем оттуда msvcr80d.dll в папку \debug проекта.
Возвращаемся в среду, жмем Ctrl+F5.
Получаем:
"Debug Error!
Program: d:\c++\project\trash\debug\trash.exe

R6034
An application has made an attempt to load C runtime library without using a manifest.
This is an unsopperted way to load Visual C++ DLL. you need to modify your application to build with manifest. For more information, see "Visual C++ Libraries as Shared Side-by-Side Assemblies" topic in product documentation." :(

P.S. Какой - нибудь workaround есть?
2 окт 06, 22:10    [3212687]     Ответить | Цитировать Сообщить модератору
 Re: msvcp80.dll динамический линк и проблемы  [new]
ErV
Member

Откуда:
Сообщений: 2040
Ну, и дальше если "пропустить" - "ошибка при инициализации приложения (0xc0000142). Для выхода из приложения нажмите кнопку "ОК".
2 окт 06, 22:12    [3212692]     Ответить | Цитировать Сообщить модератору
 Re: msvcp80.dll динамический линк и проблемы  [new]
ErV
Member

Откуда:
Сообщений: 2040
И далее (ищу способы запуска/переноса на другую машину без создания инсталлятора):
Включаем манифест (Generate Manifest:: yes)
Компилируем.
выключаем студию, для создания ситуации "машина клиента", убиваем процесс mspdbsrv, лезем в папку WinSxS, переименовывем папку x86_Microsoft.VC80.DebugCRT_1fc8b3b9a1e18e3b_8.0.50727.42_x-ww_f75eb16c и манифест x86_Microsoft.VC80.DebugCRT_1fc8b3b9a1e18e3b_8.0.50727.42_x-ww_f75eb16c.manifest в что-то другое (иначе они будут находится программой).
Запускаем (msvcr80d.dll в каталоге с программой).
Выдает :"приложение не может быть запущено, поскольку оно некорректно настроено".
Докидываем в папку манифест и оставшиеся две библиотеки CRT (msvcm80d.dll, msvcp80d.dll).
Запускаем.
Выдает то же самое ("некорректно настроено").

Смотрим найденный в гугле воркэраунд - скинуть папку с именем Microsoft.VC80.DebugCRT в каталог с программой.
Запускаем.
То же самое ("некорректно настроено").

переносим копию манифеста Microsoft.VC80.DebugCRT.manifest из подкаталога с CRT в каталог программы.
Запускаем. Выдает ту же самую ошибку (некорректно настроено).

При отсутствии DLL'ек в папке выдает то же самое сообщение ("некорректно настроено").
2 окт 06, 23:34    [3212826]     Ответить | Цитировать Сообщить модератору
 Re: msvcp80.dll динамический линк и проблемы  [new]
ErV
Member

Откуда:
Сообщений: 2040
Вот все варианты, которые я пробовал.
Работает только создание инсталлятора, но неприемлимо, так как программа должна быть легко переносима с одной машины на другую. Статический линк неприемлим, так как необходимо оставить использование *.DLL в Qt(плагины), а со статическим линком будет большой суммарный размер всех файлов за счет дублирования кода CRT.
2 окт 06, 23:39    [3212833]     Ответить | Цитировать Сообщить модератору
 Re: msvcp80.dll динамический линк и проблемы  [new]
ErV
Member

Откуда:
Сообщений: 2040
И два мелких уточнения:
ErV
Докидываем в папку манифест и оставшиеся две библиотеки CRT (msvcm80d.dll, msvcp80d.dll).

Под "манифестом" имеется в виду "Microsoft.VC80.DebugCRT.manifest" из папки "VC\redist\Debug_NonRedist\x86\Microsoft.VC80.DebugCrt". Библиотеки оттуда же.

ErV

Смотрим найденный в гугле воркэраунд - скинуть папку с именем Microsoft.VC80.DebugCRT в каталог с программой.

Имеется в виду та же папка ("VC\redist\Debug_NonRedist\x86\Microsoft.VC80.DebugCrt") со всем содержимым (манифест и три дллки).
2 окт 06, 23:44    [3212841]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / C++ Ответить