Форум программистов, компьютерный форум, киберфорум
C++/CLI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.93/14: Рейтинг темы: голосов - 14, средняя оценка - 4.93
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705

Почему когда тычу в экзешник мышью, получаю один результат, а когда запускаю его из MSVS- другой?

19.05.2012, 22:53. Показов 3184. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Друзья! Предлагаю провести небольшой эксперимент. Создайте ПРОСТЕЙШИЙ проект "Приложение Windows Form". Теперь сделайте так, читобы при создании формы в каталоге с экзешником искался какой-нибудь файл. То есть в конструктор формы добавьте этот код; в нём всё понятно, он ищет файл file в каталоге с экзешником:

C++
1
2
3
4
            if (System::IO::File::Exists("file")) 
                  MessageBox::Show("Файл есть"); 
            else
                  MessageBox::Show("Файла нет");
Так, а теперь скомпильте проект и киньте в папку с экзешником файл file (любой, или создайте с нуля)
Так вот, если вы будете мышью тыкать на этот экзешник, то получите, что надо: "Файл есть"
Но если вы запустите этот экзешник из IDE (у меня Ctrl+ F5), то получите "Файла нет"
++++++++++++++++++++++++++++++++++++++++ +++++++
Почему так? Спасибо, кто откликнется!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.05.2012, 22:53
Ответы с готовыми решениями:

Когда запускаю и ввожу параметры, то, в момент когда программа должна выполнять действие, пишет ошибку
Недавно начали изучать c++. так как в школе не было программирования (преподу пофиг было) я в универе отстаю ;c Написал программу по...

Паскаль сильно тормозит компьютер когда его запускаю
Почему когда пишу программу на Турбо Паскале то процессор загружается на 100%?

Когда запускаю сервер на одной машине, а клиент на другой, то выскакивает ошибка: error 10061
Привет всем, решил написать маленький чат для себя. Сделал две программы, одна сервер, другая клиент, подскажите пожалуйста в чем может...

20
873 / 771 / 173
Регистрация: 11.01.2012
Сообщений: 1,942
19.05.2012, 23:20
kravam, EXE не видит файл потому что он лежит
в папке RELEASE . Положите туда файл и все будет O.K.
0
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
20.05.2012, 00:08  [ТС]
Дело в том, что папки releas, у меня вообще нет. Экзешник существует в единственном экземпляре в папке Debug, куда я и кидаю файл file. И, как уже было сказано, экзешник то видит file, то не видит.
0
873 / 771 / 173
Регистрация: 11.01.2012
Сообщений: 1,942
20.05.2012, 00:29
kravam,Ошибся , наоборот положите файл в папку с кодом . (и тот же файл положите где EXE)

этот вопрос сам недавно решал с Builder :
EXE и код в разных папках, поэтому файл не находится

Добавлено через 12 минут
Т.е. (могу ошибаться ) Ctrl + F5 запускает не EXE .
Ctrl + F5 запускает - код.
1
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
20.05.2012, 00:31  [ТС]
То есть мне надо вручную перенести в папку с кодом экзешник и file? Это что за приколы такие со стороны MSVS? И что, всякий раз, когда я захочу запустить экзешник через IDE, мне его вручную надо туда переносить что ли? А если он использует некоторые сторонние файлы (как шас file), их все тоже в папку с кодом переносить?

Добавлено через 2 минуты
Цитата Сообщение от MrCold Посмотреть сообщение
Ctrl + F5 запускает - код.
Похоже на то. (Бессмыслица какая-то.) Получается, вопрос сводится- как через IDE запустить экзешник?
0
873 / 771 / 173
Регистрация: 11.01.2012
Сообщений: 1,942
20.05.2012, 00:35
Цитата Сообщение от MrCold Посмотреть сообщение
положите файл в папку с кодом . (и тот же файл положите где EXE)
Код отдельно + файл , EXE отдельно + файл

Добавлено через 1 минуту
Цитата Сообщение от kravam Посмотреть сообщение
вопрос сводится- как через IDE запустить экзешник?
Угу ?
0
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
20.05.2012, 01:17  [ТС]
Вообще там нужно сделать так: нужно найти "Окно команд" и запускать экзешник из этого окна, вот используя этот синтаксис:
http://msdn.microsoft.com/ru-r... 90%29.aspx

То есть вот такую команду надо набирать в окне команд

C++
1
Tools.Shell /dir:"""тут рабочий каталог для экзешника""" """а тут полный путь к экзешнику"""
Да-да, именно так. По умолчанию рабочий каталог для экзешника какой-то левый (наверно, папка с кодом), хотя у всех нормальных людей он тот, где этот экзешник лежит. Короче рабочий каталог для экзешника надо указывать явно. И тройные кавычки не забывать писать в случае пробелов в именах путей; по ссылке указано, почему.

И в общем если охота запускать экзешник из IDE, надо исхитриться клавишами переключиться на окно команд и такую команду запустить.

Тихий ужас, что могу сказать...
0
Модератор
Эксперт по электронике
8979 / 6745 / 921
Регистрация: 14.02.2011
Сообщений: 23,859
20.05.2012, 01:19
а вы в настройки не пробовали заглянуть
Узнаете много интересного
Цитата Сообщение от MrCold Посмотреть сообщение
Ctrl + F5 запускает - код.
Это вообще гениально
прямо так вот по строкам и запускает?
Это интерпретатор?
Ctrl + F5 запуск без отладки
F5 запуск с отладкой
а не находит потому что при поиске прописан ОТНОСИТЕЛЬНЫЙ а не АБСОЛЮТНЫЙ путь
1
873 / 771 / 173
Регистрация: 11.01.2012
Сообщений: 1,942
20.05.2012, 01:25
Цитата Сообщение от ValeryS Посмотреть сообщение
не находит потому что при поиске прописан ОТНОСИТЕЛЬНЫЙ а не АБСОЛЮТНЫЙ путь
ну это понятно
0
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
20.05.2012, 01:25  [ТС]
Пописан не абсолютный и не относительный путь к вайлу file, а прописано просто его имя file. Где экзешник должен его искать? Наверное, в одной папке с собой (в рабочем каталоге), где, он, собсно и лежит. Но он там его не находит.

И как я уже сказал, почему-то рабочим каталогом для экзешника при запуске его из IDE по CTRL+F5 считается папка с кодом, где экзешником и не пахнет даже.
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
20.05.2012, 01:29
Цитата Сообщение от kravam Посмотреть сообщение
Получается, вопрос сводится- как через IDE запустить экзешник?
- файл при отладке должен быть в папке проекта. А когда приложение готово то в одном каталоге с приложением вот и всё
0
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9005 / 4706 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
20.05.2012, 01:34
kravam, вопрос прикольный конечно. Как я понимаю - любой процесс порождающий процесс передает ему ряд переменных окружения. Текущий каталог в их числе. Поэтому и получается, что когда exe стартует самостоятельно его стартовый каталог и его текущий католог - одно и тоже. Если не изменить принудительно. Когда программа работает под VS - там варианты. Текущий каталог - для Вашего случая не совсем подходящая штука, так как он может меняться.
Узнать стартовый каталог можно:
String^myStartDir=Application::Sturtup;
Это полный путь. Теперь, используя его можно обратиться к файлу.
0
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
20.05.2012, 01:37  [ТС]
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
файл при отладке должен быть в папке проекта.
А где эта папка?
++++++++++++++++++++++++++++++++++++++++ ++++++++++
А вообще я долго думал какой смысл в том, чтобы искать искомый файл не в папке с экзешником, а в папке с проектом или ещё где. Так, в папке с кодом (где он успешно ищется) у меня для самой простой формы и без того находится 12 разных файлов, назовём их "служебные" и одна папка Debug. И во всё это великолепие я должен добавить ещё и СВОИ файлы. Допустим, файлы рисунков, текстовые или ещё какие. А потом не забыть разобюраться, убрать их оттуда. Ну, дела...
0
Модератор
Эксперт по электронике
8979 / 6745 / 921
Регистрация: 14.02.2011
Сообщений: 23,859
20.05.2012, 01:38
Цитата Сообщение от kravam Посмотреть сообщение
Пописан не абсолютный и не относительный путь к вайлу file, а прописано просто его имя file.
почитай про файловую систему что FAT что NTFS
Цитата Сообщение от kravam Посмотреть сообщение
И как я уже сказал, почему-то рабочим каталогом для экзешника при запуске его из IDE по CTRL+F5 считается папка с кодом, где экзешником и не пахнет даже.
открой уже настройки проекта

поменяй каталог на Debug(Relase) и будет тебе щастье
Миниатюры
Почему когда тычу в экзешник мышью, получаю один результат, а когда запускаю его из MSVS- другой?  
0
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
20.05.2012, 01:39  [ТС]
Цитата Сообщение от IGPIGP Посмотреть сообщение
Это полный путь. Теперь, используя его можно обратиться к файлу.
Ну ясно, чё. Попробую использовать. Прощай, простота!
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
20.05.2012, 01:39
Цитата Сообщение от kravam Посмотреть сообщение
А где эта папка?
- ну вот ты создал проект с названием блаблабла
У тебя в этой папке срр программы и папки Debug и(или) Release так вот при отладке файл надо ложить в папку блаблабла а когда всё готово, копируй приложение куда угодно и рядом с ним ложи файл.
0
Модератор
Эксперт по электронике
8979 / 6745 / 921
Регистрация: 14.02.2011
Сообщений: 23,859
20.05.2012, 01:43
Цитата Сообщение от kravam Посмотреть сообщение
А вообще я долго думал какой смысл в том, чтобы искать искомый файл не в папке с экзешником, а в папке с проектом или ещё где. Так, в папке с кодом (где он успешно ищется) у меня для самой простой формы и без того находится 12 разных файлов, назовём их "служебные" и одна папка Debug. И во всё это великолепие я должен добавить ещё и СВОИ файлы. Допустим, файлы рисунков, текстовые или ещё какие. А потом не забыть разобюраться, убрать их оттуда. Ну, дела...
если вы не умеете пользоватся инструментом это не значит что он плохой
по этой логике если я кому то передаю проект то я должен копировать все включая папку дебиг
при том что явно придется перекомпилировать
а если я создам несколько папок для разных версий то в каждую должен бросить файлы?
поэтому по умолчанию файлы и ищутся в папке проекта а не в папке исполняемого файла
0
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
20.05.2012, 01:51  [ТС]
Цитата Сообщение от ValeryS Посмотреть сообщение
поэтому по умолчанию файлы и ищутся в папке проекта а не в папке исполняемого файла
Ну не знаю, не знаю. Я всю жизнь работал с Dev-Cpp, где файлы ищутся именно в папке с экзешником. Потом в родительской, что ли. Не запутаешься! И было хорошо. А если в другое место их пихаешь, тогда прописываешь к ним относительный путь.

Короче, есть же некоторый стандарт. Сперва файлы ищутся в папке с экзешником, потом согласно переменной PATH (я порядок подзабыл). И всем хорошо.
0
Модератор
Эксперт по электронике
8979 / 6745 / 921
Регистрация: 14.02.2011
Сообщений: 23,859
20.05.2012, 01:55
не дак пропиши в настройках где искать

Добавлено через 1 минуту
Цитата Сообщение от kravam Посмотреть сообщение
Короче, есть же некоторый стандарт. Сперва файлы ищутся в папке с экзешником
В рабочем каталоге!
а для VS по умолчанию это папка проекта
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
20.05.2012, 01:59
ValeryS, честно брось гиблое дело...
Человеку к сожалению сложно что-либо объяснить. Тут уже и ты и я писали и даже у MrCold проскользнуло
Цитата Сообщение от MrCold Посмотреть сообщение
наоборот положите файл в папку с кодом
что делать . Это вопросы разряда как создать приложение или как пользоваться отладчиком как по мне.

Цитата Сообщение от kravam Посмотреть сообщение
Сперва файлы ищутся в папке с экзешником, потом согласно переменной PATH (я порядок подзабыл).
- это хедеры так ищёться притом когда кавычки поставил ""

kravam, безо всякого говорю тебе ещё раз
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
- ну вот ты создал проект с названием блаблабла
У тебя в этой папке срр программы и папки Debug и(или) Release так вот при отладке файл надо ложить в папку блаблабла а когда всё готово, копируй приложение куда угодно и рядом с ним ложи файл.
Возьми перестрой проект, а файл положи рядом с срр в котором код, всё будет работать.(послушай людей)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
20.05.2012, 01:59
Помогаю со студенческими работами здесь

Когда на экране отображается результат мат операции, а когда видим саму операцию?
Доброго времени суток! Есть код $c=100; $k=10; print $c-$k;// на экран выводит 90 и это естественно А вот код ниже

Когда a = a + b и a+= b дают одинаковый результат и когда разный
Приведите пример, когда a = a + b и a += b дают одинаковый результат и когда разный.


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru