![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
AxNe0 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 263 Регистрация: 24.4.2006 Где: St. Petersburg Репутация: нет Всего: 5 |
Всем привет!
Есть проблема - программа при запуске требует библиотеку msvcrtd.dll. Как можно исправить код, чтобы программа работала без всех библиотек? |
|||
|
||||
NiJazz |
|
|||
![]() Jazz coder ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2286 Регистрация: 10.8.2003 Где: Москва Репутация: 1 Всего: 23 |
AxNe0, в свойствах проекта:
С/С++ -> Code Generation -> Runtime library: выстави значение, аналогичное старому, но без DLL. То есть если было, к примеру, Multi-threaded DLL, то сделай Multi-threaded. Это для VC++ 7.Х Не забудь написать, помогло или нет. |
|||
|
||||
AxNe0 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 263 Регистрация: 24.4.2006 Где: St. Petersburg Репутация: нет Всего: 5 |
Прошу прощения, забыл указать среду - у меня VC++ 6.0. Этот способ не помог
![]() |
|||
|
||||
NiJazz |
|
|||
![]() Jazz coder ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2286 Регистрация: 10.8.2003 Где: Москва Репутация: 1 Всего: 23 |
AxNe0, попробуй выставить Multi-threaded. Возможно, твоё приложение многопоточное, а ты используешь не тот рантайм.
|
|||
|
||||
Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 53 Всего: 183 |
По-моему, это библиотека от debug-версии. Скомпилируй релиз.
-------------------- ... |
|||
|
||||
bel_nikita |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Эксперт Сообщений: 2304 Регистрация: 12.10.2003 Где: Поезд №21/22 ( ст . Прага ) Репутация: 21 Всего: 47 |
AxNe0,
копай в сторону Link/Project Options: /nodefaultlib:"msvcrtd.lib" Еще могешь прописать /VERBOSE и увидишь все либы используемые проектом Это сообщение отредактировал(а) bel_nikita - 29.6.2006, 17:05 |
|||
|
||||
AxNe0 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 263 Регистрация: 24.4.2006 Где: St. Petersburg Репутация: нет Всего: 5 |
При попытке создания релиза - не хватает библиотеки nafxcw.lib, после того, как поставил ее, появляются ошибки:
bel_nikita, /nodefaultlib:"msvcrtd.lib" тоже не помогает ![]() |
|||
|
||||
NiJazz |
|
|||
![]() Jazz coder ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2286 Регистрация: 10.8.2003 Где: Москва Репутация: 1 Всего: 23 |
Говорю еще раз: выстави Multi-threaded!
|
|||
|
||||
AxNe0 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 263 Регистрация: 24.4.2006 Где: St. Petersburg Репутация: нет Всего: 5 |
Сорри, вначале, когда поставил - почему-то не работало, сейчас вродь как работает, но еще проверить надо бы
![]() Добавлено @ 12:31 теперь при запуске на компе без визуала, требуется библиотека MFC42D.DLL, как можно от этой "гадости" избавиться? PS В Project Settings стоит "Not Using MFC"... Это сообщение отредактировал(а) AxNe0 - 30.6.2006, 12:32 |
|||
|
||||
bel_nikita |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Эксперт Сообщений: 2304 Регистрация: 12.10.2003 Где: Поезд №21/22 ( ст . Прага ) Репутация: 21 Всего: 47 |
Походу никак. скорее всего сторонняя либа цепляет MFC42D.DLL. Посмотри внимательно, чтобы проект в релизе подключал релизные либы, а в дебаге - дебажные. |
|||
|
||||
Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 53 Всего: 183 |
Именнно, MFC42D.DLL - то опять debug-библиотека. Single-thread, Multithread - неважно, главное, чтобы все используемые библиотеки использовали одну модель.
Опцию Not Using MFC лучше не ставить, она годится только если ты вообще не используешь DLL - иначе правильную версию CRT не подключишь. Выбери Use MFC as Multithread DLL (или Single Thread, в зависимости от потребностей). Кода в приложение это тебе не добавит, а релизные MFC-библиотеки обычно в Windows уже есть. -------------------- ... |
|||
|
||||
0x07L |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 272 Регистрация: 10.6.2006 Где: Москва Репутация: нет Всего: 5 |
![]() Это сообщение отредактировал(а) 0x07L - 30.6.2006, 20:16 |
|||
|
||||
En_t_end |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2074 Регистрация: 4.12.2004 Репутация: 1 Всего: 20 |
||||
|
||||
Earnest |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 53 Всего: 183 |
Не важно в смысле поднятой проблемы.
Если приложение не создает потоков (кроме главного), и не подключает DLL, которые это делают (включая всякие чужие ActiveX), то можно использовать однопоточную (single) модель. Многопоточная модель, как следует из названия, потокобезопасна, т.е. там есть всякие синхронизации и прочее. Но это не бесплатно, так что если не нужно - то не нужно и Multithread. Хотя, приложения имеют тенденцию расти, и рано или поздно, поток завести захочется... Так что, наверное, имеет смысл всегда подключать Multithread. -------------------- ... |
||||
|
|||||
0x07L |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 272 Регистрация: 10.6.2006 Где: Москва Репутация: нет Всего: 5 |
Earnest, очередной раз большое спасибо!
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |