Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 79, средняя оценка - 4.81
Битл
0 / 0 / 0
Регистрация: 08.03.2012
Сообщений: 65
#1

Программа, написанная на Visual Studio 2010 в Windows7, не запускается Windows XP - C++

24.03.2012, 11:57. Просмотров 10167. Ответов 27
Метки нет (Все метки)

Возможно вопрос поднимался (если да, то можно было бы прилепить), но поиском не нашел.

Создал консольный проект вин32, написал код - все отлично отработало. На компе с винХР не запускается... Я так понимаю, что нужно изменить свойства проекта... Подскажите плз, как поправить?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.03.2012, 11:57
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Программа, написанная на Visual Studio 2010 в Windows7, не запускается Windows XP (C++):

В Visual studio C++ 2010 не запускается исплняемый файл - C++
При компиляции 1>Построение успешно завершено. Но 1>C:\Program Files...

Программа и Visual Studio 2010 - C++
Программу взял отсюда,но она почему -то не работает в VS 2010 #include <iostream.h> int main() { int max=999; int mass={0}; for...

Программа на языке С++ в среде Visual Studio 2010 - C++
Здравствуйте.Помогите пожалуйста с задачей. #include "stdafx.h" #include <iostream> #include <conio.h> using std::cout; using...

Программа на языке С++ в среде Visual Studio 2010 - C++
Здравствуйте Вот было задание-написать программу которая подсчитывает число ненулевых битов целого числа и использует операцию сдвига....

Visual Studio 2010 + Windows 7 x64. Ошибки при компиляции - C++
Здравствуйте. Использую Visual Studio 2010 и Windows 7 x64 Компилю код. Получаю экзешник. На компьютере запускается нормально. Пробую...

Visual Studio 2010 (Не компилируется ни одна программа. Даже та,которую мастер создал автоматически!) - C++
Не компилируется ни одна программа. Даже та,которую мастер создал автоматически!Не знаю даже на что грешить,может проблема с подключением...

27
defer
秘密
555 / 235 / 3
Регистрация: 29.11.2010
Сообщений: 783
24.03.2012, 12:11 #2
http://msdn.microsoft.com/en-us/library/8kche8ah.aspx
0
Битл
0 / 0 / 0
Регистрация: 08.03.2012
Сообщений: 65
24.03.2012, 20:29  [ТС] #3
Угу, понятно. А скомпилировать так, чтоб не нужно было добавлять библиотеки нельзя?
0
kravam
быдлокодер
1696 / 883 / 45
Регистрация: 04.06.2008
Сообщений: 5,471
25.03.2012, 02:25 #4
Не силён я в английском
Не запускается программа на другом компьютере
0
Битл
0 / 0 / 0
Регистрация: 08.03.2012
Сообщений: 65
25.03.2012, 10:18  [ТС] #5
Ага, спасибо. Но не помогло.. ( Пишет что отсутствует cc3260mt.dll Копирование это библиотеки в систем 32 или рядом с экзешником не исправляет ситуацию...

Скомпилил в DevCpp, размер экзешника вырос 41 до 410кб и запустилось на ХР. Но все же хотелось бы разобраться с Visual Studio
0
kravam
быдлокодер
1696 / 883 / 45
Регистрация: 04.06.2008
Сообщений: 5,471
25.03.2012, 14:27 #6
Цитата Сообщение от Битл Посмотреть сообщение
Пишет что отсутствует cc3260mt.dll Копирование это библиотеки в систем 32 или рядом с экзешником не исправляет ситуацию...
Я так понял, с помощью ключей ты сделал так, что ось не требует дополнительных библиотек, которые требовала раньше- ты просто как-то их хитро слинковал с экзешником статически. Но одну библиотеку всё же требует. И то, что наличие её не помогает, очень-очень странно. Скинь экзешник и dll, чтобы я в сети не искал.



Цитата Сообщение от Битл Посмотреть сообщение
Скомпилил в DevCpp, размер экзешника вырос 41 до 410кб и запустилось на ХР.
а там на самом деле есть способы уменьшения экзешника, надо не генерить отладочную информацию или вот, из книги (опция линкёра):
"-s
Удаляет из выполнимоrо файла таблицу проrpаммных символов (symbol tabIe) и
информацию об их перемещаемой адресации (relocation information). Дает такой же
результат, как применение утилиты strip."


Всё это легко ищется и правится в настройках компилятора; можно ещё и оптимизировать код, но я это не пробовал:

"-Olevel
Устанавливает уровень оптимизации rенерируемоrо компилятором кода. При
оптимизации Bcerдa приходится находить компромисс между сокращением размера
кода и занимаемой памяти, и увеличением скорости выполнения проrраммы. По
умолчанию применяется oo, что означает отказ от применения оптимизации. Если
в опции значение level не указано то оно считается равным 1."

Ну и так далее, там много чё написано.

Добавлено через 8 минут
И да, тут ещё дело может быть в разрядности регистра, не исключаю. Если проект заточен под 32-разрядный проц, то он запустится на 64-разрядном проце, но обратное неверно.
0
Битл
0 / 0 / 0
Регистрация: 08.03.2012
Сообщений: 65
25.03.2012, 15:48  [ТС] #7
Сорри, ошибся.. Требует msvcp100d.dll

Исходник, экзешник и длл в атаче.

Если не сложно, глянь и код. Это с прошлой темы он... Вроде правильно работает, но там то что закоментировано что-то глючит... Не поравильно работает получение привилегий дебага, определение региона и с VirtualAlloc как-то не сложилось...
0
Вложения
Тип файла: rar Debug.rar (146.0 Кб, 48 просмотров)
kravam
быдлокодер
1696 / 883 / 45
Регистрация: 04.06.2008
Сообщений: 5,471
25.03.2012, 16:14 #8
Я в прошлый раз ещё хотел спросить, это что?
C++
1
#include <iostream>*
я имею ввиду звёздочку; она вообще чего тут? зачем? MSVS-компилятор хавает?

Запустил калькулятор; запустил test, вроде всё нормально отработало:
C++
1
2
3
4
5
процесс найден
Ищем адрес сигнатуры
Маска найдена
Найденный адрес = 0002001C
Для продолжения нажмите любую клавишу . . .
приаттачился к процессу, msvcp100d.dll НЕ ЗАГРУЖЕНА в память. msvcp100.dll загружена, а msvcp100d.dll нет. Предварительный вывод: msvcp100d.dll не требуется. (XP SP(2))
0
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1305 / 1220 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
25.03.2012, 16:20 #9
Установи vcredist.exe от 2010 студии и заработает всё...
0
kravam
быдлокодер
1696 / 883 / 45
Регистрация: 04.06.2008
Сообщений: 5,471
25.03.2012, 16:26 #10
Использовал DoRtlAdjustPrivilege, ошибок не заметил
0
Битл
0 / 0 / 0
Регистрация: 08.03.2012
Сообщений: 65
25.03.2012, 16:35  [ТС] #11
Цитата Сообщение от Deviaphan Посмотреть сообщение
Установи vcredist.exe от 2010 студии и заработает всё...
Это кто и куда его установить? )))

Запустил калькулятор; запустил test, вроде всё нормально отработало:
Ты студией компилил или мой экзешник пускал? На том компе где пускали это экзе предварительно студии не было... ХЗ что там...

Спасибо что глянул!!
0
kravam
быдлокодер
1696 / 883 / 45
Регистрация: 04.06.2008
Сообщений: 5,471
25.03.2012, 16:44 #12
Студию не трогал, запустил готовый экзешник; потом компильнул в Dev-Cpp (обработав мелким напилником)- результаты одинаково предположительно положительные.

Добавлено через 4 минуты
Цитата Сообщение от Битл Посмотреть сообщение
На том компе где пускали это экзе предварительно студии не было
не было, ага. Короче, msvcp100d.dll не испоьзуется, а msvcp100.dll используется, судя по названию, это примочка MSVS, у меня MSVS есть, а у других нет. Поэтому надо кинуть в папку с проектом msvcp100.dll, но не msvcp100d.dll
1
Битл
0 / 0 / 0
Регистрация: 08.03.2012
Сообщений: 65
25.03.2012, 17:00  [ТС] #13
Цитата Сообщение от kravam Посмотреть сообщение
Поэтому надо кинуть в папку с проектом msvcp100.dll, но не msvcp100d.dll
В папку с проектом или рядом с готовым экзе?
0
kravam
быдлокодер
1696 / 883 / 45
Регистрация: 04.06.2008
Сообщений: 5,471
25.03.2012, 17:01 #14
с готовым экзешником
0
Битл
0 / 0 / 0
Регистрация: 08.03.2012
Сообщений: 65
25.03.2012, 17:07  [ТС] #15
*(FARPROC *)&RtlAdjustPrivilege = GetProcAddress(GetModuleHandle("ntdll.dll"), "RtlAdjustPrivilege");

При компиллировании релиза ругается на эту строку и подчеркивает ntdll.dll
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.03.2012, 17:07
Привет! Вот еще темы с ответами:

Visual studio 2010 - C++
Господа, подскажите, где нужно полазить в опциях студии, чтобы после изменения программы она не запускала последний удачный дебаг? Заранее...

Visual Studio 2010 - C++
Кто нибудь пробовал??? Хочу узнать отзывы...

c++, visual studio 2010! 6. - C++
Given natural number n. Compute 2 to the power of n. Do not use pow() function. Example: Input: 5 Output: 32

c++, visual studio 2010! 7 - C++
Given three natural numbers a, b, c which represent the day, month and year of some date. For example: 1, 4, 1991 represents 1st April...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Yandex
Объявления
25.03.2012, 17:07
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru