powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как получить return value функции потока?
3 сообщений из 3, страница 1 из 1
Как получить return value функции потока?
    #35019318
Фотография Капюшон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как получить return value функции потока?

Например, вот создается поток:

ThreadHandle = CreateThread(NULL, 0, aFunction, aThreadParam, CREATE_SUSPENDED &ThreadID);

Как получить return value функции aFunction?

Параметры-то у меня получается передать, а вот return value...
...
Рейтинг: 0 / 0
Как получить return value функции потока?
    #35019342
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может это?

автор
GetExitCodeThread Retrieves the termination status of the specified thread.


Вообщем смотри Process and Thread Functions.
...
Рейтинг: 0 / 0
Как получить return value функции потока?
    #35019499
Фотография Cerebrum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я это делаю так

Код: plaintext
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.
extern "C" bool RunAppA(const char* pAppName, const char* pCmdLine, const char* pCurDir, WORD wWindowState, bool bRunSeparate, DWORD& ldwExitCode)
{
//---------------------------------------------------------------- функция на замену ShellExecute
//pAppPathName --------------------------------------- путь и/или имя запускаемого приложеиня
//pCmdLine --------------------- список параметров (не может быть const для UNICODE см. MSDN)
//pCurDir -------------------------------------------------------- текущая папка для процесса
//wWindowState ----------- флаги состояния окна запущенной программы (см. MSDN SW_HIDE и др.)
//bRunSeparate = false ----------------- не ждать результатов выполнения запущенной программы
//ldwExitCode ----------------------------------- код, возвращаенный процессом при завершении
//*******************************************************************************************
	_STARTUPINFOA		 si = {sizeof(si)};
	_PROCESS_INFORMATION pi;
	memset(&si,  0 , sizeof(si));
	memset(&pi,  0 , sizeof(pi));
	si.cb			= sizeof(si);
	si.dwFlags		= STARTF_USESHOWWINDOW;
	si.wShowWindow	= wWindowState;	   // SW_HIDE, SW_NORMAL и другие определенные в window.h
//---------------------------------------------------------------------- запускаем приложение 
	YOUR_String_CLASS str;
	if(str.Format("%s %s", pAppName, pCmdLine))
	{
		if(!CreateProcessA(NULL, (char*) str, NULL, NULL, FALSE, CREATE_NO_WINDOW, NULL, pCurDir, &si, &pi))
			return false;
		if(!bRunSeparate)								// ждем пока не завершиться процесc
			WaitForSingleObject(pi.hProcess, INFINITE);
		::GetExitCodeProcess(pi.hProcess, &ldwExitCode); // возвращенный код завершения
		CloseHandle(pi.hProcess); CloseHandle(pi.hThread);// закрываем хэндлы
		return true;
	}
	return false;
}
--------------------------------------------------------------
[не претендую на уникальность]
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как получить return value функции потока?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]