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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.10.2021, 08:39   #1
Audax Spiritus
Пользователь
 
Регистрация: 07.10.2021
Сообщений: 10
Сообщение Windows API C

Как здесь вернуть значение выполненного потока в main (или как вывести на экран в функции main)? Собственно функция MainThread должна вернуть число int. Язык программирование С.
Код:
int main()
{
	int size = 7;
	HANDLE* Threads = new HANDLE[size];
	for (size_t i = 0; i < size; i++)
	{
		Threads[i] = CreateThread(NULL, 0, MainThread, &size, 0, NULL);

		if (Threads[i] == NULL)
		{
			ExitProcess(0);
		}
	}
	WaitForMultipleObjects(size, Threads, true, INFINITE);
	return 0;
}


DWORD WINAPI MainThread(LPVOID lpParam)
{
	int size = (int)lpParam;
	exit(Search(GenerateVector(size), size));
}

Последний раз редактировалось Audax Spiritus; 07.10.2021 в 08:58.
Audax Spiritus вне форума Ответить с цитированием
Старый 07.10.2021, 12:03   #2
ForenLi
Форумчанин
 
Регистрация: 02.06.2021
Сообщений: 515
По умолчанию

1. Не надо в потоке вызывать exit
2. Открываете доку на используемую функцию CreateThread
3. Читаете
Цитата:
If this function returns, the DWORD return value is used to terminate the thread in an implicit call to the ExitThread function. Use the GetExitCodeThread function to get the thread's return value.
и получаете ответ на ваш вопрос.
ForenLi вне форума Ответить с цитированием
Старый 07.10.2021, 17:20   #3
Audax Spiritus
Пользователь
 
Регистрация: 07.10.2021
Сообщений: 10
По умолчанию

Цитата:
Сообщение от ForenLi Посмотреть сообщение
the DWORD
в коде явно видно что это int, так что вариант не подходит, да и нет у меня такой функции в списке (GetExitCodeThread)
Audax Spiritus вне форума Ответить с цитированием
Старый 07.10.2021, 18:29   #4
ForenLi
Форумчанин
 
Регистрация: 02.06.2021
Сообщений: 515
По умолчанию

Цитата:
Сообщение от Audax Spiritus Посмотреть сообщение
в коде явно видно что это int
Код:
DWORD WINAPI MainThread(LPVOID lpParam)
В коде явно видно, что DWORD. В документации тоже DWORD.

Цитата:
Сообщение от Audax Spiritus Посмотреть сообщение
да и нет у меня такой функции в списке (GetExitCodeThread)
Выбросьте этот список, ибо это ВинАПИ и
Цитата:
Minimum supported client Windows XP [desktop apps | UWP apps]
т.е. еще с ВинХП точно.
ForenLi вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Windows API и C# relav_ C# (си шарп) 18 22.01.2014 12:18
Windows API Xme1ez Помощь студентам 3 23.11.2012 21:01
Windows 7 API Gerzs Win Api 2 14.12.2009 16:48
Ищу книги по Windows API Malkovich Свободное общение 6 15.08.2009 15:00