![]() |
|
![]() ![]() ![]() |
|
_hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 5 Всего: 98 |
в свойствах проекта ветка С++ (там кодогенератор) выбери вариант "многопоточная"
-------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
Smarts |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 67 Регистрация: 23.4.2007 Репутация: нет Всего: 2 |
Cпасибо, это как раз то что нужно. Установил данный пак на том компьютере и все заработало без ошибок ![]() Niko, попробуй то же самое, должно помочь ;) |
|||
|
||||
vano |
|
|||
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 24.4.2007 Репутация: нет Всего: нет |
Скажите, статическая линковка это- Configuration proprieties -> general -> Use MFC in Static Library ?
Если да, то как её использовать, как я понял она требует отключения опции /CLR. А без опции CLR не корректно следующее. #usig <System.dll>. А без System dll не могу сделать MessageBox::Show("Hellow World"); Вопрос. Как используя статическую линковку, использовать например MessageBox? ------------------------ Поставил Redistributable Pack - Тоже самое ( проекты с DLL MFC + /clr option не идут). --------------------------------------------- Похоже manifest отключать нельзя. Вот, что компилятор говорит "An application has made an attempt to load the C runtime library without using a manifest. This is an unsupported way to load Visual C++ DLLs." Я так понимаю, что из этого следует, что с MFC, без manifest работать нельзя. Это сообщение отредактировал(а) vano - 24.4.2007, 19:12 |
|||
|
||||
Любитель |
|
|||
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 7 Всего: 92 |
1. CLR - Common Language Runtime, т. е. .Net Framework. Юзать его ради месаджбокса - очень жестоко. Вызывай месадж-бокс из ВинАПИ
![]() 2. Прикол в том, что ... это правда. Помогает патчинг DllMain (на неё любой дизасм вас выкинет ![]() Согласно, MSDN - лучший вариант таков (если нет доступа на запись в виндовые папки, но не хотим статик-линк): 1. Собираем со стандартными настройками. 1. У себя из %WinDir%\WinSxS\Manifests тащим манифест x86***Mirosoft.VC80.CRT***.manifest и (не уверен в необходимости) сертификат безопасности x86***Mirosoft.VC80.CRT***.cat в папку к экзехе. 2. Ренеймим его в Microsoft.VC80.CRT. Для локальных сборок (assembly) никакие хеш-ключи не нужны ![]() 3. Копируем сюды же (к экзехи) из %WinDir%\x86***Mirosoft.VC80.CRT*** длл-ки. msvcr80.dll - в любом случае, msvcp80.dll - плюсовая стандартная либа (не шаблонами едиными...), msvcm80.dll - поддержка OpenMP. Усё. В доикспишных системах будет идти загрузка длл-ок, исходя из таблицы импорта, а икспи и > - попробует вначале системный вариант, а затем (не найдя там ничего) - локальные сборки. PS Будьте внимательны. У меня было три версии CRT. И соответственно три манифеста (+ *.cat-ы). Хеш-ключи, конечно у всех разные. Причём один манифест (и одна длл-ка) ни с чем не состыковалась ![]() ![]() ![]() |
|||
|
||||
![]() ![]() ![]() |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |