Size: a a a

IT KPI C/C++ ХВ (не UB)

2020 May 02

J

Jmik in IT KPI C/C++ ХВ (не UB)
Oleksandr Shaposhnikov
Попробуй так
-lglfw3 -lGL -lX11 -lpthread -lXrandr -lXi -ldl
Мне удалось создать окошко
Удачно скомпилировать примеры все еще не удалось

Проблемма была в том, что:
Ставим: libglfw3
Подключаем: glfw3.h
А опция линковщика: -lglfw
(Без тройки, а я писал с тройкой)

Выяснил случайно когда забыл добавить тройку)))
источник

MS

Meow Sav in IT KPI C/C++ ХВ (не UB)
Jmik
Мне удалось создать окошко
Удачно скомпилировать примеры все еще не удалось

Проблемма была в том, что:
Ставим: libglfw3
Подключаем: glfw3.h
А опция линковщика: -lglfw
(Без тройки, а я писал с тройкой)

Выяснил случайно когда забыл добавить тройку)))
это вообще как
источник

J

Jmik in IT KPI C/C++ ХВ (не UB)
Meow Sav
это вообще как
Ну вот так, надо опцию без тройки писать......
Щас прикомпиляции примеров он ругается на библиотеку glad но как я понял она необязательна и используется только в примерах
источник

OS

Oleksandr Shaposhnik... in IT KPI C/C++ ХВ (не UB)
Jmik
Ну вот так, надо опцию без тройки писать......
Щас прикомпиляции примеров он ругается на библиотеку glad но как я понял она необязательна и используется только в примерах
glad надо инклудить перед ogl
источник

OS

Oleksandr Shaposhnik... in IT KPI C/C++ ХВ (не UB)
А вообще да, она необязательна и нужна чисто для инициализации
источник

OT

Oleh Tymoshenko in IT KPI C/C++ ХВ (не UB)
Хай
Вопрос по winapi
Пытаюсь из моего процесса вызвать дочерний 7zip.exe, и заархивировать файл, файл архивируется, но получить тот же  результирующий текст, что и при обычном использовании 7zip не получается. т.е. я перенаправляю потоки stderr, stdout в канал, который читаю в главном процесе, но он  всегда пустой, что не так?
Код:
HANDLE hServer = { NULL };
HANDLE hClient = { NULL };
 
// set default setting and enable inherit
SECURITY_ATTRIBUTES sa = { NULL };
sa.nLength = sizeof(SECURITY_ATTRIBUTES);
sa.bInheritHandle = TRUE;

// try to create pipe
if ((!CreatePipe(&hServer, &hClient, &sa, NULL)) ||
(hServer == INVALID_HANDLE_VALUE)||(hClient == INVALID_HANDLE_VALUE))
{
CloseHandle(hClient);
CloseHandle(hServer);
ShowError();
return;
}

// set default settings for STARTUPINFO structa and
// redirect stderr and stdout to pipe (phServer)
STARTUPINFO si = { NULL };
si.cb = sizeof(si);
si.dwFlags = STARTF_USESTDHANDLES;
si.hStdError = hServer;
si.hStdOutput = hServer;

PROCESS_INFORMATION pi = { NULL };

if (!CreateProcess(NULL,
cmdForNewProc,
NULL,
NULL,
TRUE,
ABOVE_NORMAL_PRIORITY_CLASS,
NULL,
NULL,
&si,
&pi
))
{
CloseHandle(hClient);
CloseHandle(hServer);
ShowError();
return;
}

WaitForSingleObject(pi.hProcess, INFINITE); // wait until the process completes
TerminateProcess(pi.hProcess, 0); // terminate process 7zip process

DWORD dwReadedBytes = 0;
TCHAR buff[READ_PIPE_BUFF_SIZE] = { '\0' };
//OVERLAPPED overlaped = { NULL };
while (ReadFile(hClient, buff, sizeof(buff), &dwReadedBytes, NULL))
{
cout << buff;
}
источник

AB

Aleksey Belkevich in IT KPI C/C++ ХВ (не UB)
По опыту тут в винапи шарят 2,5 человека
источник

AB

Aleksey Belkevich in IT KPI C/C++ ХВ (не UB)
А почему не заскриптуешь чем-то?
источник

OT

Oleh Tymoshenko in IT KPI C/C++ ХВ (не UB)
да я вообще лабу пытаюсь сделать, и тут суть в процессах, но чет не пойму в чем проблема
источник

AB

Aleksey Belkevich in IT KPI C/C++ ХВ (не UB)
Принял
источник

A

András in IT KPI C/C++ ХВ (не UB)
Oleh Tymoshenko
Хай
Вопрос по winapi
Пытаюсь из моего процесса вызвать дочерний 7zip.exe, и заархивировать файл, файл архивируется, но получить тот же  результирующий текст, что и при обычном использовании 7zip не получается. т.е. я перенаправляю потоки stderr, stdout в канал, который читаю в главном процесе, но он  всегда пустой, что не так?
Код:
HANDLE hServer = { NULL };
HANDLE hClient = { NULL };
 
// set default setting and enable inherit
SECURITY_ATTRIBUTES sa = { NULL };
sa.nLength = sizeof(SECURITY_ATTRIBUTES);
sa.bInheritHandle = TRUE;

// try to create pipe
if ((!CreatePipe(&hServer, &hClient, &sa, NULL)) ||
(hServer == INVALID_HANDLE_VALUE)||(hClient == INVALID_HANDLE_VALUE))
{
CloseHandle(hClient);
CloseHandle(hServer);
ShowError();
return;
}

// set default settings for STARTUPINFO structa and
// redirect stderr and stdout to pipe (phServer)
STARTUPINFO si = { NULL };
si.cb = sizeof(si);
si.dwFlags = STARTF_USESTDHANDLES;
si.hStdError = hServer;
si.hStdOutput = hServer;

PROCESS_INFORMATION pi = { NULL };

if (!CreateProcess(NULL,
cmdForNewProc,
NULL,
NULL,
TRUE,
ABOVE_NORMAL_PRIORITY_CLASS,
NULL,
NULL,
&si,
&pi
))
{
CloseHandle(hClient);
CloseHandle(hServer);
ShowError();
return;
}

WaitForSingleObject(pi.hProcess, INFINITE); // wait until the process completes
TerminateProcess(pi.hProcess, 0); // terminate process 7zip process

DWORD dwReadedBytes = 0;
TCHAR buff[READ_PIPE_BUFF_SIZE] = { '\0' };
//OVERLAPPED overlaped = { NULL };
while (ReadFile(hClient, buff, sizeof(buff), &dwReadedBytes, NULL))
{
cout << buff;
}
Будь ласка, читни закріплене повідомлення
источник

OT

Oleh Tymoshenko in IT KPI C/C++ ХВ (не UB)
1) нужно в родительском процессе запустить 7zip, и перехватить его strout, stderr
2)канал, который я читаю в родительском процессе, всегда пустой
3) то, что попытался сделать прикрепил в коде
источник

A

András in IT KPI C/C++ ХВ (не UB)
Oleh Tymoshenko
1) нужно в родительском процессе запустить 7zip, и перехватить его strout, stderr
2)канал, который я читаю в родительском процессе, всегда пустой
3) то, что попытался сделать прикрепил в коде
Претензія була саме до того, як ти скинув код
источник

OT

Oleh Tymoshenko in IT KPI C/C++ ХВ (не UB)
вот скрин, где пытаюсь прочитать канал в родительском  проц.
источник

OT

Oleh Tymoshenko in IT KPI C/C++ ХВ (не UB)
вот перенаправляю
источник

R

Rabu in IT KPI C/C++ ХВ (не UB)
Oleh Tymoshenko
Хай
Вопрос по winapi
Пытаюсь из моего процесса вызвать дочерний 7zip.exe, и заархивировать файл, файл архивируется, но получить тот же  результирующий текст, что и при обычном использовании 7zip не получается. т.е. я перенаправляю потоки stderr, stdout в канал, который читаю в главном процесе, но он  всегда пустой, что не так?
Код:
HANDLE hServer = { NULL };
HANDLE hClient = { NULL };
 
// set default setting and enable inherit
SECURITY_ATTRIBUTES sa = { NULL };
sa.nLength = sizeof(SECURITY_ATTRIBUTES);
sa.bInheritHandle = TRUE;

// try to create pipe
if ((!CreatePipe(&hServer, &hClient, &sa, NULL)) ||
(hServer == INVALID_HANDLE_VALUE)||(hClient == INVALID_HANDLE_VALUE))
{
CloseHandle(hClient);
CloseHandle(hServer);
ShowError();
return;
}

// set default settings for STARTUPINFO structa and
// redirect stderr and stdout to pipe (phServer)
STARTUPINFO si = { NULL };
si.cb = sizeof(si);
si.dwFlags = STARTF_USESTDHANDLES;
si.hStdError = hServer;
si.hStdOutput = hServer;

PROCESS_INFORMATION pi = { NULL };

if (!CreateProcess(NULL,
cmdForNewProc,
NULL,
NULL,
TRUE,
ABOVE_NORMAL_PRIORITY_CLASS,
NULL,
NULL,
&si,
&pi
))
{
CloseHandle(hClient);
CloseHandle(hServer);
ShowError();
return;
}

WaitForSingleObject(pi.hProcess, INFINITE); // wait until the process completes
TerminateProcess(pi.hProcess, 0); // terminate process 7zip process

DWORD dwReadedBytes = 0;
TCHAR buff[READ_PIPE_BUFF_SIZE] = { '\0' };
//OVERLAPPED overlaped = { NULL };
while (ReadFile(hClient, buff, sizeof(buff), &dwReadedBytes, NULL))
{
cout << buff;
}
вангую ридфайл возвращает 0 и цикл идет нахуй
источник

OT

Oleh Tymoshenko in IT KPI C/C++ ХВ (не UB)
Rabu
вангую ридфайл возвращает 0 и цикл идет нахуй
ну да, в цикл даже не заходит, а разве 0 это не признак того, что ничего не считалось ?
источник

R

Rabu in IT KPI C/C++ ХВ (не UB)
Oleh Tymoshenko
ну да, в цикл даже не заходит, а разве 0 это не признак того, что ничего не считалось ?
ну если ты приходишь в магазин в 2 часа ночи, а он закрыт — это же не значит, что ты туда больше не зайдешь?
источник

R

Rabu in IT KPI C/C++ ХВ (не UB)
while(1) и if внутри should do the trick
источник

OT

Oleh Tymoshenko in IT KPI C/C++ ХВ (не UB)
Rabu
ну если ты приходишь в магазин в 2 часа ночи, а он закрыт — это же не значит, что ты туда больше не зайдешь?
хммм, а что блокирует считывание, и когда я смогу "зайти в магазин"?
источник