powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / msvcp80.dll динамический линк и проблемы
15 сообщений из 40, страница 2 из 2
msvcp80.dll динамический линк и проблемы
    #34029093
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ErV....Alt+F7(project properties)
Configuration Properties->Linker->Manifest File::Generate Manifes - "No"
Жмем "ОК".

F7. (Build)
Ctrl+F5 (Run);
получаем "приложению не удалось запуститься поскольку MSVCR80D.dll не был найден. ...

не подтверждаю...
запускается...работает..."No" в том месте где указали - поставил...
дошёл до этого места - думаю дальше не имеет смысла...


коментировать не буду...может что нить и рожу...


(круглый)
...
Рейтинг: 0 / 0
msvcp80.dll динамический линк и проблемы
    #34029778
ErV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kolobok0 ErV....Alt+F7(project properties)
Configuration Properties->Linker->Manifest File::Generate Manifes - "No"
Жмем "ОК".

F7. (Build)
Ctrl+F5 (Run);
получаем "приложению не удалось запуститься поскольку MSVCR80D.dll не был найден. ...

не подтверждаю...
запускается...работает..."No" в том месте где указали - поставил...
дошёл до этого места - думаю дальше не имеет смысла...


коментировать не буду...может что нить и рожу...


(круглый)
В msdn было сказано, что ряд систем этот наворот с манифестами не поддерживают, и работают частично по-старинке.
MSDN
On versions of Windows that do not support deployment of shared side-by-side assemblies, such as Windows 98 and Windows 2000 Server, the Visual C++ libraries are installed in the System32 folder and WinSxS folder under the operating system root directory. This setup enables running Visual C++ applications on these operating system versions because they do not support manifest-based binding of applications to dependent DLLs. On these operating systems, when an application is loaded, the corresponding manifest file is ignored and the operating systems searches for dependent DLLs using paths set in the current running environment. However, on upgrading the operating system to a version that support manifest-based binding, such as Windows XP or Windows Server 2003, applications built with manifests start using the DLLs installed in the WinSxS folder.

Часом не одна из вышеперчисленных у вас стоит?
...
Рейтинг: 0 / 0
msvcp80.dll динамический линк и проблемы
    #34029912
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ErV....Часом не одна из вышеперчисленных у вас стоит?

вроде не сервак...
Wicrosoft Windows 2000 SP4

(круглый)
...
Рейтинг: 0 / 0
msvcp80.dll динамический линк и проблемы
    #34030142
ErV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kolobok0 ErV....Часом не одна из вышеперчисленных у вас стоит?

вроде не сервак...
Wicrosoft Windows 2000 SP4

(круглый)

У меня Windows XP Professional SP2

При попытке засунуть msvcrt80d.dll C:\Windows\System32 проложение вылетает с тем жу глюком - R6034 (Приложение попыталось загрузить CRT, не используя манифест).

Я где-то натыкался на эту инфу:
internet
According to Microsoft, installing a private side-by-side assembly is not supported on Windows 2000 and below, but it seems to work okay. They prefer the CRT DLLs to be installed in the System32 directories. In my opinion, it sounds more like scare tactics from Microsoft. They say it may or may not work, but they're not going to help you if you do it.

Если у вас есть в каталоге $(WinDir)\System32\ эти *.dll'ки, значит (как я понимаю), метод загрузки через манифесты системой не поддерживается, и поэтому все работает.

Как я понимаю, остается только вариант Custom CRT Build? А с лицензией (Microsoft EULA) не будет проблем?
...
Рейтинг: 0 / 0
msvcp80.dll динамический линк и проблемы
    #34032200
ErV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проблема (вроде бы) решена копированием содержимого папки \VC\redist\x86\Microsoft.VC80.CRT в каталог с программой. Надо понимать, что при прошлых попытках теста, переименовывания каталога C:\WINDOWS\WinSxS\x86_Microsoft.VC80.DebugCRT_1fc8b3b9a1e18e3b_8.0.50727.42_x-ww_f75eb16c и манифеста было недостаточно, и что-то оказывало влияние на тест. Когда полностью перекинул содержимое папки WinSxS в другое место, все пшло без проблем, надо понимать, аналогично будет и на машине заказчика.
Всем спасибо.
...
Рейтинг: 0 / 0
msvcp80.dll динамический линк и проблемы
    #34100089
Lyzlov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пробовал исправить-
выдает "ошибка инициализации приложения".
может кто-нибудь помочь?

http://otvet.mail.ru/question/838748/
...
Рейтинг: 0 / 0
msvcp80.dll динамический линк и проблемы
    #34819651
nilrem
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тема годичной давности но всё же:
Проблема решается так:
Project Property->Configuration properties->c/c++->code generation->runtime library->MTd
манифест отключить. ЕХЕ потолстеет на 400 кb.
...
Рейтинг: 0 / 0
msvcp80.dll динамический линк и проблемы
    #34869261
eldarkt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо всем, долго-долго читал msdn на эту тему а потом решил-таки погуглить, и вот работают оба метода - с копированием содержимого папки этой и с отключением манифеста, скажите плиз какой из них использовать более грамотно?
...
Рейтинг: 0 / 0
msvcp80.dll динамический линк и проблемы
    #34870435
ErV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eldarkt wrote:

> с копированием содержимого папки этой и с отключением манифеста,
> скажите плиз какой из них использовать более грамотно?
ИМХО, либо ставить vcredist_x86, либо статический линк.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
msvcp80.dll динамический линк и проблемы
    #34871524
ErV Ggg_oldписали бы на vs2003 и не было бы проблем....
в vs2005 среда разработки лучше. в 2003 - компилятор. :) Самый быстрый был в vc6.5. Ещё бы это все собрать все вместе в одну кучу, так было бы вообще хорошо.
Проблему решил инсталлятором (кстати, на машине клиента этих библиотек, само собой, не было), но это не вариант. Нужны другие решения. Кто-нибудь их знает?
http://www.sql.ru/forum/actualthread.aspx?tid=483464 - тут у тебя это был вариант:)
2MasterZiv - походу ты никогда не ставил на чистые машины проекты.
Манифесты ищутся в том же каталоге. В exe-шнике, если его открыть в тотале например Ф3, можно в самом конце увидеть описания зависимостей в ресурсах. Там и прописано имя манифеста который надо найти, а вот уже в манияесте прописано какую dll и откуда грузить. У меня только не получилось грузить одну и туже dll из разных библиотек, расположенных в подпапках. Где в манифесте это прописано. Может кто знает где именно?
Сначала манифест ищется в папке WinSxS а потом уже в папке с установленной прогой. Вариант таскать не vcredist.exe, а включить Microsoft_VC80_CRT_x86_x64.msm и policy_8_0_Microsoft_VC80_CRT_x86_x64.msm, к себе в инсталятор. Он сам все сделает. Похоже это и есть самый умный вариант.

Кто умнее?
...
Рейтинг: 0 / 0
msvcp80.dll динамический линк и проблемы
    #34871666
ErV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не получивший ответа wrote:

> Вариант таскать не vcredist.exe
А что мешает vcredist включить в инсталлятор? Насколько я помню,
M$'овский визард (хотя я это ооочень давно делал) именно это и делает.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
msvcp80.dll динамический линк и проблемы
    #34871669
ErV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не получивший ответа wrote:

> Кто умнее?
Не занимайтесь ерундой.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
msvcp80.dll динамический линк и проблемы
    #34871770
ErV
Не получивший ответа wrote:

> Кто умнее?
Не занимайтесь ерундой.

Ну я имел в виду "Кто умнее" предложит идею и не хотел никого оскорблять.
В msi его включить не получиться по одной простой причине, что он сам msi, а два одновременных msi работать одноременно не могут. Либо свой инсталятор писать не на msi. И вообще это тупо. Есть только два варианта и они уже предложены. Зачем еще посторять тоже самое:
1. Таскать с собой необходимые dll и манифест. Чтобы я и сделал на месте автора, если у него только один exe или все исполнимое лежит в одном каталоге. Просто манифест тоже носи и все. Легко и удобно.
2. Включить модуль для распространение от самого МС. Его ты найдешь в Common Files\Merge Modules если не ошибаюсь. Можешь поиском воспользоваться, я уже давал имена файлов.

ВСЕ!!! Другого не дано свыше (Мелкософтом)
Хотя вариант статической линковки тут приводили. Тоже хорошо. Даже лучше всех.
...
Рейтинг: 0 / 0
msvcp80.dll динамический линк и проблемы
    #34871869
ErV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Понявший что не получит ответа wrote:

> оскорблять. В msi его включить не получиться по одной простой причине,
> что он сам msi, а два одновременных msi работать одноременно не могут.
> Либо свой инсталятор писать не на msi.
Объясняю. В Visual Studio можно делать инсталляторы для
приложения. Я это только один раз ковырял, оно мне показалось жутко
сырым, но можно было создать сетап, который инсталлировал нужные
библиотеки, вызывая vcredist. Оно работало, причем dll'ки шли не в MSM.
Пошаговое описалово по созданию проекта есть где=то в msdn. Кроме того,
по-моему, мне попадались уже приложения, инсталлировавшие vcredist
прямо из сетапа.

> Таскать с собой необходимые dll и манифест.
Когда я этот вопрос рыл, то натыкался на сообщения людей, у которых этот
вариант не работал. По неизвестным причинам, без объяснений. Посему и
рекомендую vcredist или собирать проект инсталлера.

> Чтобы я и сделал на месте автора,
Какого автора? Автор первого сообщения - Я, проблема решена давным-давно
и забыта. (на дату первого сообщения посмотрите, больше года прошло)

> 2. Включить
> модуль для распространение от самого МС.
ПисАл же выше, в MSVC можно собрать инсталлятор, который установит
нужные библиотеки (плюс найдет все компоненты, которые может
понадобиться устанавливать).

> Хотя вариант статической линковки тут приводили. Тоже хорошо. Даже
> лучше всех.
Приложение, которое это использовало, опиралось на Qt 4, а ему для
корректной работы плагинов нужен динамический линк.

> Другого не дано свыше (Мелкософтом)
Компиляция через mingw. (если возможно). Или даунгрейд до vc7.1 или
компилятора, который вместе с ним фриварно распространялся (vc 2003
compiler toolkit, что ли? Сейчас фиг найдешь, M$ его с сайта
удалила...). Ещё есть вариант пересборки CRT с целью выкусывания
бреднятины с манифестом, но я не в курсе, разрешено ли это M$-овской
лицензией.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
msvcp80.dll динамический линк и проблемы
    #34873548
Фотография Cerebrum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
проект с нуля win32 api windows application /empty project

добавляю 2 файла: хэдер и cpp. В хэдере:

Код: plaintext
#include "windows.h"

в cpp

Код: plaintext
1.
2.
3.
4.
5.
#include [хэдер.h]

int WINAPI WinMain (...все что положено...)
{
return  0 ;
}

меняю линковку на статическую, т.е. libcmtd.lib (_MTd) в дебаге / (_MT) libcmt.lib - в релизе.
Компилю.
Запускаю в BoundsChecker'e дебаг - все ОК.
Запускаю релиз - приложение запускается и см. картинку.

может мне кто-нибудь объяснить, что я делаю не так?

--------------------------------------------------------------
[не претендую на уникальность]
...
Рейтинг: 0 / 0
15 сообщений из 40, страница 2 из 2
Форумы / C++ [игнор отключен] [закрыт для гостей] / msvcp80.dll динамический линк и проблемы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]