18 / 18 / 4
Регистрация: 05.06.2012
Сообщений: 1,020
1

Как сплести набор взаимосвязанных утилит ?

20.07.2015, 09:42. Показов 2586. Ответов 51
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте.
Пишу набор утилит, создал несколько проектов в одном решении в VS. Утилиты при выполнении операций будут взаимодействовать друг с другом. Пока что для запуска намерен использовать одну из функций ShellExecute() или CreateProcess() или system("*.exe").
Вопрос: существует ли ещё какие либо решения взаимовызова для подобных комплексов?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.07.2015, 09:42
Ответы с готовыми решениями:

Набор утилит из Steam-версии Civilization V
Уважаемые форумчане, есть ли у кого-нибудь лицензионная цивилизация, активированная через стим?

Как посчитать значения взаимосвязанных колонок?
Здравствуйте, не уверен, что правильно выбрал раздел, ну да и чёрт с ним, разберемся по ходу. В...

Как заменить набор символов на другой набор
В Perl есть оператор tr//, который меняет одни символы на другие. Например: $code =~...

Два взаимосвязанных ListBox'a
Доброго времени суток! Помогите, пожалуйста, по такому вопросу: есть ListBox1 и ListBox2. При...

51
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
31.08.2015, 15:08 41
Author24 — интернет-сервис помощи студентам
Avazart, Лучше так
C++
1
CString str(L"recognition.exe img.png");
а подставлять
C++
1
str.GetBuffer();
От так работает
C++
1
2
3
4
 CString str(L"recognition.exe img.png");
  //создаем дочерний процесс
  if (!CreateProcess(L"recognition.exe",str.GetBuffer(),NULL,NULL,TRUE,HIGH_PRIORITY_CLASS,
                     NULL,NULL,&si,&pi))
А мб. есть какой то класс МФС для работы с процессами??? На МСДН посоветовали Process.Start использовать, но то для C#, для С# есть класс Process походу
Кликните здесь для просмотра всего текста

Не по теме:

Avazart, Это я у тебя статью стянул про curl :)

0
Эксперт С++
8385 / 6147 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
31.08.2015, 15:12 42
Цитата Сообщение от Tulosba Посмотреть сообщение
Зачем такой хитрый tolower?
Да потом что бы долго не менять если нужно бутет играть с макросами юникода

Добавлено через 46 секунд
Цитата Сообщение от Tulosba Посмотреть сообщение
Тут можно и UB словить между делом, имхо.
Да мы вроде как обсуждали где то это с Убежденным ...

Добавлено через 1 минуту
Цитата Сообщение от ninja2 Посмотреть сообщение
для С# есть класс Process походу
Я писал свой класс С++ как-то... по крайней мере пытался, с пайпами там итп.
0
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
31.08.2015, 15:14 43
Цитата Сообщение от Avazart Посмотреть сообщение
Я писал свой класс как-то...
Да отож все свой все свой, а на С# все готовое есть, нада мб. на С# переходит, одни плюсы
0
Эксперт С++
8385 / 6147 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
31.08.2015, 15:16 44
Цитата Сообщение от ninja2 Посмотреть сообщение
Да отож все свой все свой, а на С# все готовое есть, нада мб. на С# переходит, одни плюсы
Ну я писал свой только что бы поиграться и посмотреть что получится, какие проблемы возникнут.
А вообще необходимости такоей особой нет- в Qt к примером есть QProcess.

К тому же такие ошибки возникают обычно только от неопытности и нежелания обращаться к документации/книгам.
0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
31.08.2015, 15:23 45
Цитата Сообщение от Avazart Посмотреть сообщение
Да потом что бы долго не менять если нужно бутет играть с макросами юникода
А в чем смысл нарушать согласованность типов символов в коде? Т.е. если допустим TCHAR=wchar_t в текущей настройке, зачем иметь код с char?
Цитата Сообщение от Avazart Посмотреть сообщение
Да мы вроде как обсуждали где то это с Убежденным ...
И к чему пришли?
0
Эксперт С++
8385 / 6147 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
31.08.2015, 15:25 46
Цитата Сообщение от Tulosba Посмотреть сообщение
А в чем смысл нарушать согласованность типов символов в коде? Т.е. если допустим TCHAR=wchar_t в текущей настройке, зачем иметь код с char?
Да так както хитро, есть ведь макрос UNICODE влияющий на СreateProcessA()/СreateProcessB()
0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
31.08.2015, 15:30 47
Цитата Сообщение от Avazart Посмотреть сообщение
есть ведь макрос UNICODE влияющий на СreateProcessA()/СreateProcessB()
СreateProcessW.
дефайн есть, но в чем всё же суть параллельного существования char и wchar_t базированного кода в данном случае?
0
Эксперт С++
8385 / 6147 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
31.08.2015, 15:34 48

Не по теме:

Цитата Сообщение от Tulosba Посмотреть сообщение
СreateProcessW.
Ну да, опечатался...


Цитата Сообщение от Tulosba Посмотреть сообщение
но в чем всё же суть параллельного существования char и wchar_t базированного кода в данном случае?
На вcякий случай, вдруг не захочится использовать wmain
Цитата Сообщение от Tulosba Посмотреть сообщение
И к чему пришли?
CreateProcess() - некорректно передаются параметры командной строки
1
Tulosba
31.08.2015, 15:41
  #49

Не по теме:

Цитата Сообщение от Avazart Посмотреть сообщение
CreateProcess() - некорректно передаются параметры командной строки
мда

0
37 / 36 / 9
Регистрация: 16.04.2015
Сообщений: 283
31.08.2015, 18:44 50
CreateProcess() - некорректно передаются параметры командной строки
Чего там неправильного? Всё правильно передаётся:
Вот пример - запускает notepad.exe с передачей ему параметра "c:\\test.txt"
(notepad.exe запускается с открытием файла c:\\test.txt)

main:
Кликните здесь для просмотра всего текста

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
#include "stdafx.h"
#include <windows.h>
#include <stdio.h>
#include <tchar.h>
#include <wchar.h>
 
#include <string>
#include <iostream>
#include <sstream> 
#include <fstream>
 
int main(int argc, char* argv[])
{
    PROCESS_INFORMATION ProcessInfo; //This is what we get as an [out] parameter
    STARTUPINFO StartupInfo;         //This is an [in] parameter
 
    wchar_t path_to_exe[] = L"c:\\windows\\notepad.exe";
    wchar_t cmdArgs[] = L"notepad.exe c:\\test.txt"; // argv[]
 
    ZeroMemory(&StartupInfo, sizeof(StartupInfo));
    StartupInfo.cb = sizeof StartupInfo; //Only compulsory field
 
    if (CreateProcess(
        path_to_exe,
        cmdArgs,
        NULL, 
        NULL,
        FALSE, 
        0, 
        NULL,
        NULL,
        &StartupInfo, 
        &ProcessInfo))
    {
        WaitForSingleObject(ProcessInfo.hProcess, INFINITE);
        CloseHandle(ProcessInfo.hThread);
        CloseHandle(ProcessInfo.hProcess);
 
        printf("Процесс создан.");
    }
    else
    {
        printf("Процесс НЕ создан.");
    }
    return 0;
}

0
Эксперт С++
8385 / 6147 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
31.08.2015, 19:35 51
Попробуйте так
C++
1
wchar_t cmdArgs[] = L"c:\\windows\\notepad.exe c:\\test.txt";
Но вместо path_to_exe подставляйте NULL
Кроме того пробелы в пути собердаться пробльные символы необходимо обрамлять путь в кавычки.
0
Диссидент
Эксперт C
27706 / 17322 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979
01.09.2015, 10:42 52
Цитата Сообщение от Убежденный Посмотреть сообщение
Второй аргумент CreateProcessXxxW должен быть доступен на запись.
Такая вот особенность у этого семейства функций (документированная, кстати).
Любопытно. Не знал. Спасибо вам!
0
01.09.2015, 10:42
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.09.2015, 10:42
Помогаю со студенческими работами здесь

Сортировка взаимосвязанных массивов
всем здравствуйте. очень нужна помощь советом в следующем вопросе. если два массива, в одном...

два взаимосвязанных spinbox
Здравствуйте .Столкнулся со следующей проблемой. На форме есть два spinbox один - ширина...

Два взаимосвязанных поля input
Здравствуйте прошу помочь... не могу понять как создать два взаимосвязанных поля input например в...

Два взаимосвязанных SELECTa на VBScript
Нашел тут хороший пример от Zombie по взаимосвязанной работе 2-х select_ov, не поделится ли кто...


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

Или воспользуйтесь поиском по форуму:
52
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru