Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Как компоновать программу вместе с .DLL в Visual Studio 2010  (Прочитано 9386 раз)
0 Пользователей и 1 Гость смотрят эту тему.
chesland
Интересующийся

ua
Offline Offline

« : 09-08-2011 21:47 » 

Предыстория:
Решил переходить со своего старенького любимого VC6.0 на VC2010.
Для личных нужд потребовалась программка по копированию файлов.
Поставил на ноутбук (Win7pro-лицензионка) Visual Studio 2010.
Написал. Запустил. Работает.
В ней всего-то ДВЕ РАБОЧИЕ функции:
CreateDirecrory();
CopyFile();
Перенес на стационарный комп(Win7ultima-лицензионка)
Запустил... и получил сообщение:

"Запуск программы невозможен, так как на компьютере отсутствует
MSVCR100.dll. Попробуйте переустановить программу."


Загрузил ТОТ ЖЕ САМЫЙ текст под VC6.0 на ноуте(под XP), скомпилил, перенес на Стационарный комп(Win7), запустил - РАБОТАЕТ.

Вот тут мне крышу и снесло!
Это что получается? Установщик VC 2010 накидал мне в операционку своих НОВЫХ DLL-ок, они при запуске программ автоматом подгружаются и проги - работают! А если я знакомому эту прогу дам попользоваться, то она у него работать НЕ будет? Он ведь не пользуется VC 2010!!!
Потом я подостыл и попытался думать.

А теперь вопрос:
Как мне встроить эту DLL в свою программу. Ну, наподобие как в VC6.0 - "статические библиотеки", а не подгружаемые динамически в память при вызове.
Или мне нужно к моей малюсенькой программке писать установочный модуль по встраиванию DLL2010 в операционку Win7???

Заранее спасибо за ответы.
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


WWW
« Ответ #1 : 10-08-2011 03:21 » 

конечно же данную DLL нужно иметь на компе. Когда поставил студию - DLL уже есть. А в остальных случаях это далеко не факт, поэтому нужно копировать DLL везде с экзешником (то есть, включить в дистрибутив). Пусть лежит прямо около экзешника
Записан

chesland
Интересующийся

ua
Offline Offline

« Ответ #2 : 10-08-2011 09:16 » 

конечно же данную DLL нужно иметь на компе. Когда поставил студию - DLL уже есть. А в остальных случаях это далеко не факт, поэтому нужно копировать DLL везде с экзешником (то есть, включить в дистрибутив). Пусть лежит прямо около экзешника
А нельзя ли встроить эту dll/(ее функции) в сам exe-шник? Как это сделать в VC2010? В VC6.0 - это очень просто. А в этом произведении Microsoft?
Записан
Вад
Модератор

ru
Offline Offline
Пол: Мужской

« Ответ #3 : 10-08-2011 10:22 » 

chesland, в 2010 студии, согласно настройкам проекта по умолчанию, Runtime Library линкуется в виде DLL (это, кажется, с 2005й или 2008 студии так пошло). На статический вид линковки переключить можно.
Загляните в настройки проекта, в Code Generation
« Последнее редактирование: 10-08-2011 10:25 от Вад » Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines