Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

VS 2008 Под вистой, проблема переноса консольного приложения

35K
29 августа 2008 года
herr Daniel
18 / / 29.08.2008
Доброго всем времени суток.
Подскажите, пожалуйста, как быть.
Написал небольшую консольную программу. Написал на VS 2008, в операционной среде Виста. Запускается нормально работает.
Но при попытке запустить с другого компьютера с Windows XP sp2 появляется окно с сообщением ошибки. Окно прилагается.

С какими параметрами скомпилировать?
35K
29 августа 2008 года
herr Daniel
18 / / 29.08.2008
В продолжении проблемы... после установки студии 2008 консоль запустилась. без перекомпиляции.
14
29 августа 2008 года
Phodopus
3.3K / / 19.06.2008
Скорее всего это отсуствие требуемых библиотек, при присутствии описывающего их манифеста
3
30 августа 2008 года
Green
4.8K / / 20.01.2000
Цитата: herr Daniel

С какими параметрами скомпилировать?


/MT
Обсуждалось на форуме уже около миллиона раз.

40K
03 сентября 2008 года
jsonborn
10 / / 26.08.2008
На одном форуме (http://programmersforum.ru/showthread.php?t=24402) встретил рекомендацию:

Project Property->Configuration properties->c/c++->code generation-runtime library->MT
Project Property->Linking->Manifest File->Generating Manifest->NO

Правда, имелось в виду использование MSVS 2005.
В результате получил ошибку:
[COLOR="Red"]Command line error D8016 : '/MT' and '/clr' command-line options are incompatible[/COLOR]
35K
03 сентября 2008 года
herr Daniel
18 / / 29.08.2008
Уважаемый, Green.
Если это так часто обсуждалось тогда Вам наверное не составит труда кинуть ссылку на это обсуждение. Мне как новечку самостоятельно не справиться. По сему и открыл эту тему.
3
03 сентября 2008 года
Green
4.8K / / 20.01.2000
Цитата: herr Daniel
Уважаемый, Green.
Если это так часто обсуждалось тогда Вам наверное не составит труда кинуть ссылку на это обсуждение. Мне как новечку самостоятельно не справиться. По сему и открыл эту тему.


http://forum.codenet.ru/showthread.php?t=38688
http://forum.codenet.ru/showthread.php?p=254204

jsonborn, тебе тоже сюда:
http://forum.codenet.ru/showthread.php?t=38688

40K
03 сентября 2008 года
jsonborn
10 / / 26.08.2008
уважаемый Green, информация по указанной ссылке, безусловно, полезна и вместе с тем, известна.
но если не затруднит, поясните, все-таки. В моей ситуации (СLR->Windows Forms Application), простановка опции "No Common Language Runtime support" приводит к многочисленным ошибкам компиляции:
[SIZE="1"]1>Compiling...
1>AssemblyInfo.cpp
1>.\AssemblyInfo.cpp(3) : error C2871: 'System' : a namespace with this name does not exist
1>.\AssemblyInfo.cpp(4) : error C2653: 'System' : is not a class or namespace name
1>.\AssemblyInfo.cpp(4) : error C2871: 'Reflection' : a namespace with this name does not exist
1>.\AssemblyInfo.cpp(5) : error C2653: 'System' : is not a class or namespace name
1>.\AssemblyInfo.cpp(5) : error C2871: 'CompilerServices' : a namespace with this name does not exist
1>.\AssemblyInfo.cpp(6) : error C2653: 'System' : is not a class or namespace name
1>.\AssemblyInfo.cpp(6) : error C2871: 'InteropServices' : a namespace with this name does not exist
1>.\AssemblyInfo.cpp(7) : error C2653: 'System' : is not a class or namespace name
1>.\AssemblyInfo.cpp(7) : error C2871: 'Permissions' : a namespace with this name does not exist
[/SIZE]
и еще куча всего....
если же выставить опцию по дефолту, то получается традиционная в таких случаях ошибка:
[SIZE="1"]1>cl : Command line error D8016 : '/MT' and '/clr' command-line options are incompatible[/SIZE]
правильно ли я понял (из Вашей ссылки), что исправить указанную проблему можно, только установив соответствующую версию фреймворка на компьютере пользователя?
спасибо.
3
03 сентября 2008 года
Green
4.8K / / 20.01.2000
Цитата: jsonborn

правильно ли я понял (из Вашей ссылки), что исправить указанную проблему можно, только установив соответствующую версию фреймворка на компьютере пользователя?


Да, именно так

40K
03 сентября 2008 года
jsonborn
10 / / 26.08.2008
При этом /МТ и NO можно не выставлять?
3
03 сентября 2008 года
Green
4.8K / / 20.01.2000
Цитата: jsonborn
При этом /МТ и NO можно не выставлять?


/MT - это опция компиляции unmanaged-приложений, а ты собираешь managed-приложение. Т.е. опция там эта вообще неприменима.

35K
04 сентября 2008 года
herr Daniel
18 / / 29.08.2008
Green.
Спасибо за ссылки. Но у меня проблема осталась не решенной. Может 2008 VS хочет какую-то особенную библиотеку, которая есть в Висте, но нет в ХР?
40K
05 сентября 2008 года
jsonborn
10 / / 26.08.2008
если честно, то "мой воз" тоже "и ныне там".
вообще, как-то странно: неужели для того, чтобы запускать на другом компьютере программу, весом 88 Кбайт, нужно накатывать Framework 3.0 SP1, весом 245 метров?
я было установил compact-ные версии - сначала 2.0 SP1, затем 3.5 - по боку. все равно программа не запускается... наверное, данная проблема как-то по-другом решается.
288
05 сентября 2008 года
nikitozz
1.2K / / 09.03.2007
Цитата: jsonborn
если честно, то "мой воз" тоже "и ныне там".
вообще, как-то странно: неужели для того, чтобы запускать на другом компьютере программу, весом 88 Кбайт, нужно накатывать Framework 3.0 SP1, весом 245 метров?
я было установил compact-ные версии - сначала 2.0 SP1, затем 3.5 - по боку. все равно программа не запускается... наверное, данная проблема как-то по-другом решается.



Если хотите отказаться от использования Framework, откажитесь от использования CLR. Хотя в развитием технологий .NET, присутствие Framework'а на "машине" пользователя с ОС Windows - это по-моему уже стандарт.

3
05 сентября 2008 года
Green
4.8K / / 20.01.2000
Цитата: herr Daniel
Green.
Спасибо за ссылки. Но у меня проблема осталась не решенной. Может 2008 VS хочет какую-то особенную библиотеку, которая есть в Висте, но нет в ХР?


Ну так разберись, какую "особенную библиотеку" ты используешь.
Телепаты уже давно ушли в отпуск и до сих пор не вернулись, а без них сложно понять что там у тебя с проектом.
Выясни, что за проект ты строишь, managed или unmanaged. М-да... это все равно, что посоветовать художнику определиться, какими все же красками он рисует, акварелью или фломастерами. Создатель должен знать каким инструментом он пользуется.

Если это managed, то тебе надо установить соотв. .NET Framework на др. машину. Учти, что они не имеют обратной совместимости, т.е. если ты собираешь под .NET 2.0, то на др. машине должен стоять именно .NET 2.0, а не 1 или 3.

Если это unmanaged, то проект должен быть собран без использования доп. библиотек, т.е. с ключом /MT. Обрати так же внимание на параметр General -> Use of MFC, если ты используешь MFC.
Либо надо ставить соотв. библиотеки на др. машину. При этом надо помнить про технологию Side by Side, т.е. должны стоять те же библиотеки тех же версий.
Определись так же, какую версию продукта ты строишь: release или debug. Они используют разные варианты библиотек.

40K
05 сентября 2008 года
jsonborn
10 / / 26.08.2008
также в тему:
http://forum.codenet.ru/showthread.php?t=48128
3
05 сентября 2008 года
Green
4.8K / / 20.01.2000
Цитата: jsonborn
если честно, то "мой воз" тоже "и ныне там".
вообще, как-то странно: неужели для того, чтобы запускать на другом компьютере программу, весом 88 Кбайт, нужно накатывать Framework 3.0 SP1, весом 245 метров?
я было установил compact-ные версии - сначала 2.0 SP1, затем 3.5 - по боку. все равно программа не запускается... наверное, данная проблема как-то по-другом решается.


Ну так ты определись, какой Framework ты используешь, а не тыч пальцем в небо.

Что значит, "программа не запускается"?
"Автомобиль не заводится, помогите мне!"...
Он может не заводиться из-за миллионов причин. Но в результате окажется, что либо бензина нет ("ой! а нужен бензин?!") или нет ключей ("ой! а они то нафига"), либо вообще нет автомобиля ("ой! а это я как-то упустил из виду").

Разберись какие симптомы. Что пишет загрузчик на экране, что отражается в журнале событий.

3
05 сентября 2008 года
Green
4.8K / / 20.01.2000
Цитата: nikitozz
Хотя в развитием технологий .NET, присутствие Framework'а на "машине" пользователя с ОС Windows - это по-моему уже стандарт.


.NET Framework не имеет обратной совместимости. А ставить с установкой ВСЕ версии .NET от 1.0 до крайней - это лишнее время, объемы и т.п.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог