Платформа Windows(XP или Vista).
Язык программирования C++.
Программа не использует каких то специальных библиотек подобным QDevelop, VCL, MFC и другие. Все функции строго WinAPI и библиотека C.
Компилировал на Visual Studio 2005. Попробовал запустить н другом компьютере выводит ошибку: "Приложение не правильно установлено." Я так понимаю что Visual Studio всё таки насильно подключает какие то библиотеки. Попробовал через GNU – ошибка компиляции, хотя все либ-файлы я подключил. Попробовал через CBuilder не знаю как подключить правильно что б работало везде. Кому не трудно подскажите как проще поступить?
10 января 2009 в 12:00
О! И действительно так! Вот кто не знаешь так не рисуйся что шаришь…
Спасибо Михаил Михалев)))
10 января 2009 в 11:02
На самом деле все не так.
Надо в настройках проекта в вижуал студии выбрать правильный рантайм(без dll), иначе придется с дистрибом программы таскать за собой vcredist_x86.exe.
Делается это так:
1. открываем настройки проекта
2. Configuration Properties->C++->Code Generation
3. выбираем рантайм "Multi-threaded" или "Multi-threaded Debug" в зависимости от текущей конфигурации билда.
5 января 2009 в 11:04
Неправильно решил. Надо было в настройках проекта выбрать статическую линковку.
4 января 2009 в 21:02
я уже решил проблему! Есть программа DLL to LIB 3.00. Скомпилировал и все работает:)))
4 января 2009 в 21:01
фигню пишете…. слинкуйте динамически и положите в папку с екзешником эти библиотеки. ноль проблем. только если правильно помню необходимо отключать генерацию манифеста.
4 января 2009 в 21:01
Извините за не точности, последний раз занимался этой проблемой больше полугода назад (как и работал со студией)
4 января 2009 в 21:01
ну что?? это тоже самое! надо что б был один файл!!!
4 января 2009 в 21:00
VS выше 2003 использует библиотеки при линковке которые не идут в комплекте с виндой.. (это сакс, поэтому я терпеть не могу продукты мелкософта)
что делать – собирать со статической библиотекой (не помню опции проекта),
- тянуть с приложением библиотеки MSVCPXX.dll MSVCRXX.dll где XX – версия студии и мучаться с манифестами и зафисимостями
- поставлять с приложением Microsoft Redistributable Package XXXX – версия студии
4 января 2009 в 21:00
да если линковать статически, то необходимо чтобы все подключаемые динамические библиотеки так же были скомпилированы со статической этой библиотекой либо опять же таскать с приложением библиотеки
надеюсь объяснил более-менее понятно.
4 января 2009 в 21:00
я вроде указала что б собирало со статическими билиотеками. Чё то наверное не доукзал… А кто помнит как правильно настраивать меню опций для статической компиляции.
4 января 2009 в 21:00
не советую статически линковать… лучше с приложением поставлять эти библиотеки, ибо гемороя потом не оберетесь
4 января 2009 в 21:00
а есть утилиты что перделывают *.DLL в *.LIB ????
4 января 2009 в 20:05
Там подключены:
WS2_32.DLL – винсокеты
KERNEL32.DLL – понятно зачем;-)
MSSVCR80.DLL – Visual Studio этого я не подключал!!!
Думаю из неё не запускаеться на других компах прога.
Как от неё избавиться???
4 января 2009 в 20:04
Ну я имел ввиду как скомпилировать код так чтоб не чего надо было дополнительно ставить на машину.
4 января 2009 в 20:03
Вместе с Вижуалом вроде идет какая-то утилита, которая показывает от каких библиотек зависит программа. Их надо найти и класть в одну папку с экзешником. Как утилита называется не помню, давно в вижуале не писала.
4 января 2009 в 20:03
Спасибо большое за совет, не знал. А если нужно подключить как static library? Что б всё было в одном файле?
4 января 2009 в 20:03
можно использовать exescope или утилиту из штатной поставки студии – Dependency walker или как то так