Próbuję Visual Studio 2010, kompilując program C. Po wyświetleniu rozwiązania w oknie poleceń "DOS" okno zostaje natychmiast zamknięte. W Visual studio 2008, dostaje się komunikat naciśnij dowolny klawisz, aby kontynuować i naciśnięcie klawisza zamyka okno wiersza polecenia. Jak ustawić to zachowanie w 2010 roku?Visual Studio 2010 wychodzące po zakończeniu programu
Odpowiedz
Po trochę googlowania znalazłem rozwiązanie this, które nie wymaga modyfikacji kodu. Zawiera obejście, które obejmuje modyfikowanie pliku .vcxproj.
Aby to zrobić w programie Microsoft Visual C++ 2010 Express (Jestem przy założeniu, że jest podobny do Visual Studio 2010), otwórz projekt i przejdź do następującego menu:
Project->$YOURPROJECTNAME Properties...
->Configuration Properties
->Linker
->System->SubSystem
następnie użyj listy rozwijanej, aby wybierz opcję Console (/ SUBSYSTEM: CONSOLE) i zastosuj zmianę.
"Rozpocznij bez debugowania" powinien teraz postąpić właściwie.
Cudownie. Działa to bardzo dobrze. I dałem ci także 1 głos do góry. Używam wersji Express. – yCalleecharan
Dziękujemy za zgłoszenie tego błędu tutaj. – yCalleecharan
To działa doskonale dla mnie, dziękuję. Czy istnieje sposób automatycznego zastosowania tego rozwiązania do wszystkich projektów? – petric
Jest to normalne. Okno konsoli "DOS" jest dołączone do twojego programu i powinno zakończyć się po zakończeniu twojego programu. Jeśli chcesz, aby pozostała otwarta, musisz dodać kod do swojego programu, aby go otworzyć. Wszystko, co musisz zrobić, to dodać instrukcję print, a następnie wprowadzić instrukcję na końcu programu.
OK dzięki ... kod do akceptacji danych wejściowych z klawiatury. – yCalleecharan
Jeśli uruchomisz aplikację bez debuggera ("Rozpocznij bez debugowania"), okno konsoli pozostanie otwarte do momentu naciśnięcia klawisza.
hmmm ... faktycznie to zrobiłem. Wiem, że dotyczy to również Visual Studio 2008, a to "polecenie" jest tym, czego używam do uruchamiania moich programów. Więc byłem nieco zaskoczony tym innym zachowaniem w 2010 roku. – yCalleecharan
Mogę potwierdzić, że użycie "start bez debugowania" w 2010 roku nie powoduje otwarcia okna konsoli po zakończeniu programu. – yCalleecharan
To dziwne. Nie mam tego samego zachowania w moim Visual Studio ... –
Możesz dodać tę funkcję i wywołać ją tuż przed powrotem z main():
void keep_window_open()
{
// clear buffer
fflush(stdin);
printf("Please enter a character to exit\n");
char ch;
ch = getchar();
return;
}
ja przystosowane go z C++ w wersji w pliku nagłówkowym narzędzie w miejscu Bjarne Stroustrup za: http://www.stroustrup.com/Programming/std_lib_facilities.h
Wielkie dzięki. Musiałem przenieść linię "char ch" tuż za nawiasem otwierającym {po definicji funkcji, aby uniknąć błędów kompilacji. Myślę, że linia "fflush (stdin)" jest kod C++ i nie działa dobrze w C. – yCalleecharan
Masz rację, zgodnie z c FAQ: http://2-faq.com/stdio/stdinflush. html fflush jest zdefiniowany tylko dla strumieni wyjściowych. Link do tego wpisu w FAQ zawiera informacje o tym, jak wprowadzić dane: http://c-faq.com/stdio/stdinflush2.html – Darel
Dzięki za link. – yCalleecharan
FWIW, polecenie "Rozpocznij bez debugowania" działa w VS2010 dokładnie w taki sam sposób jak w poprzednich wersjach Visual Studio (to znaczy, w przypadku projektu konsoli konsola pozostaje otwarta, gdy proces kończy się na "Naciśnij dowolny klawisz, aby kontynuować. ... "prompt).
Więc, w jaki sposób otrzymujesz program VS2010 do uruchomienia programu? Jeśli używasz skrótu "Ctrl-F5", czy możesz sprawdzić, czy Ctrl-F5 jest powiązany z Debug.StartWithoutDebugging
w "Opcjach/Środowisko/Klawiatura"?
Możesz także spróbować uruchomić swój program za pomocą menu ("Debugowanie/Rozpocznij bez debugowania")?
Dzięki. Najpierw skompiluję plik, następnie go skompiluję, a następnie używam Debugowania> start bez debugowania. Przypisałem "Ctrl-F5" tak jak mi powiedziałeś, ale mam takie samo zachowanie. Przyznaję, że to dziwne, ponieważ Visual Studio 2005 działa dobrze zgodnie z oczekiwaniami. – yCalleecharan
@yCalleecharan: Interesujące - nie jestem świadomy ustawienia, które to kontroluje. –
Tak, trudno w to dziwne zachowanie. – yCalleecharan
Powodem tego jest fakt, że teraz w VS 2010 możliwe jest domyślne utworzenie pustego, ogólnego projektu C++, bez konieczności przechodzenia przez kreatora. To powoduje, że VS 2010 nie ustawi poprawnie flagi Console (/SUBSYSTEM:CONSOLE)
, więc VS2010 nie ma pojęcia, że jest to aplikacja konsolowa, do której wysyłałby zwykły komunikat "Naciśnij dowolny klawisz ...".
Ten problem nie występuje, jeśli typ projektu aplikacji konsolowej zostanie utworzony z menu Nowy projekt.
Ale możesz ustawić tę flagę samodzielnie i wiele innych za pomocą Project/Settings, ponieważ powyższy post poprawnie odpowiedział!
Jeśli chcesz, aby pozostawał otwarty, musisz dodać kod do swojego programu.Podoba mi się:
#include <stdio.h>
#include <stdlib.h>
... main(...)
{
your codes
.
.
.
system("pause");
}
jeśli dodasz ten kod, twój czarny ekran pozostanie otwarty. "system (" pause ")" wewnątrz pliku nagłówkowego stdlib.h.
Doprowadzić "Uruchom bez debugowania" do menu Debug ...
Narzędzia >> Dostosuj >> Polecenia (Tab) >> Pasek menu (opcja sterowania) (listy rozwijanej) >> >> Dodaj debugowania Polecenie (przycisk) >> Debugowanie (lista kategorii) >> Rozpocznij bez debugowania
Użycie opcji "Uruchom bez debugowania" Umożliwi urządzeniu VS2010 wyświetlenie frazy "Naciśnij dowolny klawisz, aby kontynuować" przed wyjściem.
- 1. Odświeżenie programu Visual Studio 2010
- 2. Zatrzymaj Visual Studio od zamknięcia programu po zakończeniu
- 3. Najważniejsza funkcja programu Visual Studio 2010
- 4. HWnd z Visual Studio 2010
- 5. WebsiteSpark & Visual Studio 2010
- 6. UnInstall Visual Studio 2010
- 7. Visual Studio 2010 nie można uruchomić programu .dll
- 8. /LinkResource w Visual Studio 2010
- 9. Czy mogę używać programu CodeRush Xpress w Visual Studio 2010?
- 10. Microsoft Visual Studio 2010 Academic Edition
- 11. Usługi IIS Express będą nadal działać po zakończeniu sesji debugowania programu Visual Studio 2015
- 12. Visual Studio 2010 - odinstalować NuGet
- 13. Visual Studio 2010 Team Explorer
- 14. Ograniczenia Visual Studio 2010 Express
- 15. Visual Studio 2010 wiersze wiersz
- 16. Zmiana motywu Visual Studio 2010
- 17. Visual Studio 2010 referencje warunkowe
- 18. Visual Studio 2010 wolno ładować
- 19. GTK # w Visual Studio 2010
- 20. Programowo otwórz plik w Visual Studio (2010)
- 21. Visual Studio 2010 (beta 2) rozwiązanie w Visual Studio 2008
- 22. Motyw Visual Studio 2010 dla Visual Studio 2012?
- 23. Jak włączyć przewodniki po tabulatorach w Visual Studio 2010?
- 24. Samouczek instalacji programu Visual Studio OpenFrameworks?
- 25. Po zakończeniu aplikacji VB6?
- 26. Visual Studio 2010 cierpi na schizofrenię
- 27. Czy istnieje sposób, aby uniemożliwić drukowanie programu Visual Studio Wątki wychodzące instrukcji do okna wyjściowego?
- 28. Wyszukiwanie potomków klas w Visual Studio 2010
- 29. Visual Studio 2010 Okno dialogowe "Przygotowanie rozwiązania"
- 30. CSS 3.0 w Visual Studio 2010
Nie inaczej jest w VS2010, naciśnięcie Ctrl + F5 wywołuje polecenie "naciśnij dowolny klawisz" po zakończeniu programu. –
Tak, znam skrót do "start bez debugowania", ale w moim przypadku okno konsoli zostanie natychmiast odrzucone. To jest dziwne. – yCalleecharan