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

Вместо переменных окружения -> переменная из командной строки - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Дана квадратная матрица. Посчитать сумму элементов с четными номерами http://www.cyberforum.ru/cpp-beginners/thread1074965.html
Заданая двумерная последовательность з NxN целых чисел. Найти суму елементов з четними номерами этой последовательности
C++ Разобрать работу приведенного кода помогите написать что делают строки в программе #include <iostream> #include <string> #include <cmath> using namespace std; int main(){ string num1; // число в двоичной системе ... http://www.cyberforum.ru/cpp-beginners/thread1074964.html
Вектор. Поменять местами первый и максимальный элементы вектора C++
Препод задал задачку, а я тупой в С++, и не могу решить. Помогите пожалуйста! Вот задача: Дан вектор, состоящий из 9 вещественных элементов. Поменять местами первый и максимальный элементы вектора....
C++ Симметричность матрицы
#include "stdafx.h" #include <iostream> #include <conio.h> #include <iomanip> #include "MyCrt.cpp" using namespace std; int _tmain(int argc, _TCHAR* argv) { setlocale(LC_CTYPE,...
C++ Найти сумму элементов матрицы ниже главной диагонали, и произведение элементов выше нее http://www.cyberforum.ru/cpp-beginners/thread1074908.html
Добрый день, помогите найти ошибку в коде, вот задание: В матрице размером n х n найти сумму элементов, лежащих ниже главной диагонали, и произведение элементов, лежащих выше главной диагонали ...
C++ Прокомментировать каждую строку кода (или хотя бы каждую функцию) нашел программу в интернете, только ничего не понял) можете прокомментировать каждую строку (ну или хотя бы каждую функцию) #include <stdio.h> typedef struct MyList { int d; MyList*... подробнее

Показать сообщение отдельно
МихЭдНал
0 / 0 / 0
Регистрация: 27.10.2013
Сообщений: 12

Вместо переменных окружения -> переменная из командной строки - C++

19.01.2014, 16:12. Просмотров 816. Ответов 13
Метки (Все метки)

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

Сами коды

3_4

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#include "stdafx.h"
#include <windows.h>    //(Joint) 
#include <stdio.h>  
#include <conio.h>   
int _tmain(int argc, _TCHAR* argv[])
{
  STARTUPINFO si[2];
  memset(&si[0],0,sizeof(si[0]));
  memset(&si[1],0,sizeof(si[1]));
  si[0].cb=sizeof(STARTUPINFO);
  si[1].cb=sizeof(STARTUPINFO);
  PROCESS_INFORMATION pi[2];
  SYSTEMTIME                st;
  FILETIME      ft;                                       
 
  GetLocalTime(&st);
  SystemTimeToFileTime(&st,&ft);
  unsigned __int64 MinTime= (((unsigned _int64)ft.dwHighDateTime)<<32)|ft.dwLowDateTime;
  _tprintf(_T("Start values:\n%x%x\n"),(int)(MinTime>>32),(int)((MinTime<<32)>>32));
 
   TCHAR path[MAX_PATH];
   TCHAR Name[]=_T("2.exe");
   
   BOOL b=CreateProcess(0,Name,0,0,false,0,0,0,&si[0],&pi[0]);
 if(!b)             
   {
     _tprintf(_T("Error create Process Run_NotePad\n"));         return -1;
   }
   WaitForSingleObject(pi[0].hProcess,INFINITE);
 
   TCHAR p[MAX_PATH];
   *((__int64*)p)=MinTime;
 
   SetEnvironmentVariable(_T("TIME"),p);
   TCHAR proc_name[]=_T("3.exe");
   BOOL b1=CreateProcess(0,proc_name,0,0,false,CREATE_SUSPENDED,0,0,&si[1],&pi[1]);
   if(!b1)
   {    
     _tprintf(_T("Error create Process GetFileSize\n"));     return -2;   
   }
   SetPriorityClass(pi[1].hProcess, BELOW_NORMAL_PRIORITY_CLASS);
   ResumeThread(pi[1].hThread);
 
   WaitForSingleObject(pi[1].hProcess,INFINITE);
 
   CloseHandle(pi[0].hProcess);
   CloseHandle(pi[1].hProcess);
   _getch();
  return 0;
}
2.exe

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include "stdafx.h"
#include <windows.h>        // (Run_Notpad.exe) 
#include <stdio.h>
#include <conio.h>
int _tmain(int argc, _TCHAR* argv[])
{
PROCESS_INFORMATION pi;
STARTUPINFO si;
memset(&si,0,sizeof(si));
si.cb=sizeof(si);
TCHAR proc_name[]=_T("notepad.exe");
BOOL b=CreateProcess(0,proc_name,0,0,false,0,0,0,&si,&pi);
if (!b)
{
_tprintf(_T("Error no notepad\n"));
     return 1;
}
WaitForSingleObject(pi.hProcess,INFINITE);      
CloseHandle(pi.hThread);
CloseHandle(pi.hProcess);
_tprintf(_T("After Notepad is closed. Press any key\n"));
 
 _getch();
return 0;
}
3.exe

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#include "stdafx.h"
#include <windows.h>    //(GetFileSize.exe)
#include <stdio.h>  
#include <conio.h>
#include <string.h>
int _tmain(int argc, _TCHAR* argv[])
{      
    FILETIME CreateFileTime;
    unsigned __int64 MinTime;
    TCHAR buf[1000];
 
    int dwRet = /*GetEnvironmentVariable(_T("TIME"),*/ _ttoi(argv[1]);
    _tprintf(_T("Environment lenght %d\n"), dwRet);
    GetEnvironmentVariable(_T("TIME"), buf, dwRet);
 
    MinTime=*((__int64 *)buf); 
    _tprintf(_T("Obtained values:\n%x%x\n"),(int)(MinTime>>32),(int)((MinTime<<32)>>32));
 
    HANDLE hFile;
    BOOL b;
    WIN32_FIND_DATA FindFileData;
    TCHAR path[MAX_PATH];
 
    GetCurrentDirectory(MAX_PATH,path);  _tprintf_s(_T("%s\n"),path);
    HANDLE h=FindFirstFile(_T("*.txt"),&FindFileData);
    if (h==INVALID_HANDLE_VALUE)_tprintf(_T("Template File not found\n"));
    else
    { 
        while (1)               
        {   
            CreateFileTime=FindFileData.ftCreationTime;
            FileTimeToLocalFileTime(&CreateFileTime,&CreateFileTime);
            unsigned _int64 i64CreateFileTime= 
                (((unsigned _int64) CreateFileTime.dwHighDateTime)<<32)|CreateFileTime.dwLowDateTime;
            if (i64CreateFileTime>MinTime )
            {
                hFile=CreateFile (FindFileData.cFileName,GENERIC_READ,0,0,OPEN_EXISTING,0,0);
                DWORD len,high;
                _tprintf(_T("%s \n"),FindFileData.cFileName);
                len=GetFileSize( hFile,&high);
                _tprintf(_T("%d\n"),len);
                CloseHandle(hFile);
            }
            b=FindNextFile(h,&FindFileData);
            if (!b)
            {   
                _tprintf(_T("All files are over\n"));  
                break;
            }
        }       
    }//else
    //_getch();
    return 0;
}
Очень прошу помочь, чувствую что рядом но не получается сделать нормально!

Добавлено через 21 час 33 минуты
Ну может кто то поможет?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru