Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.02.2012, 00:59   #1
imaginary
 
Регистрация: 01.10.2011
Сообщений: 3
Восклицание Не работает system("pause")

Сталкиваюсь впервые с подобной проблемой.

Следующий программный код демонстрирует создание процесса и загрузку в него программы, имя которой передано в качестве параметра командной строки.НО проблема в том что нет задержки экрана.
пробовала и getch();

Код:
// program1.cpp: определяет точку входа для консольного приложения.
//
#include "stdafx.h"
#include <windows.h>
#include <stdlib.h> 
#include <tchar.h>
//#include "locale.h"
#include <iostream>
#include <conio.h>


using namespace std;



void _tmain( int argc, TCHAR *argv[] )
{
    STARTUPINFO si;
    PROCESS_INFORMATION pi;
	setlocale (LC_ALL,"Russian");

    ZeroMemory( &si, sizeof(si) );
    si.cb = sizeof(si);
    ZeroMemory( &pi, sizeof(pi) );
    if( argc != 2 )
    {
        printf("Для запуска процесса: proc_pr [имя программы]\n", argv[0]);
        return;
    }

// Старт дочернего процесса. 
    if( !CreateProcess( NULL,   // No module name (use command line)
        argv[1],     // аргументы командной строки
        NULL,       // хэндл процесса
        NULL,      // хэндл потока
        FALSE,    // наследование хэндла FALSE
        0,       // флаги
        NULL,   // блокировка родительского окружения
        NULL,  // использование родительской директории
        &si,   // указатель на структура STARTUPINFO 
        &pi )  // указатель на структуру PROCESS_INFORMATION 
    ) 
    {
  printf( "Ошибка создания процесса (%d).\n", GetLastError() );
        return;
    }
		
// Ожидать выхода из дочернего процесса.
    WaitForSingleObject( pi.hProcess, INFINITE );
// Закрытие процесса и хэндлов потока. 
    CloseHandle( pi.hProcess );
    CloseHandle( pi.hThread );
	
       system("pause");
	//getch();
	
}
HELP ME PLEASE!

Последний раз редактировалось Stilet; 01.02.2012 в 11:06.
imaginary вне форума Ответить с цитированием
Старый 01.02.2012, 02:34   #2
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

поставьте паузу в код проверок на ошибки, перед каждым return
_Bers вне форума Ответить с цитированием
Старый 01.02.2012, 08:36   #3
danzel1
Пользователь
 
Регистрация: 15.03.2011
Сообщений: 61
По умолчанию

Код:
{
printf("Для запуска процесса: proc_pr [имя программы]\n", argv[0]);
getch(); // или system("pause"); если он предпочтительнее
return;
}
в случае ошибки

Код:
{
printf( "Ошибка создания процесса (%d).\n", GetLastError() );
getch();  // или system("pause");
return;
}
danzel1 вне форума Ответить с цитированием
Старый 07.02.2012, 10:13   #4
imaginary
 
Регистрация: 01.10.2011
Сообщений: 3
По умолчанию

спасибо) все работает)
imaginary вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
system("PAUSE") и getch(); genrix Общие вопросы C/C++ 27 23.09.2013 14:00
Есть ли аналог system("pause") для c# или другой оператор который не позволяет окну закрыться после выполнения программы? MrJenika Общие вопросы C/C++ 1 01.09.2010 23:29
Ошибка сегментации при вызове system("PAUSE") Lavisa Общие вопросы C/C++ 9 01.08.2009 18:14
Ошибка сегментации при вызове system("PAUSE") Lavisa Помощь студентам 0 29.07.2009 17:43
Подскажите кто-нибудь в чем отличие между system("pause"); и getch(); какую лучше использовать? Paul_AG Общие вопросы C/C++ 7 24.03.2009 19:32