Вопрос № 54149: Здравствуйте уважаемые эксперты.
Вопрос таков. С помощью функции
HANDLE CreateThread(
LPSECURITY_ATTRIBUTES lpThreadAttributes,
SIZE_T dwStackSize,
LPTHREAD_START_ROUTINE lpStartAddress,
LPVOID lpParameter,
DWORD dwCr...
Вопрос № 54.149
Здравствуйте уважаемые эксперты.
Вопрос таков. С помощью функции
HANDLE CreateThread(
LPSECURITY_ATTRIBUTES lpThreadAttributes,
SIZE_T dwStackSize,
LPTHREAD_START_ROUTINE lpStartAddress,
LPVOID lpParameter,
DWORD dwCreationFlags,
LPDWORD lpThreadId
);
создаю поток. При этом вызывается некая функция потока DWORD WINAPI ThreadFunc(LPVOID pvParam). Не могли бы вы поподробнее объяснить механизм передачи какой либо переменной в ф-цию потока с помощью 4-го параметра ф-ции CreateThread() - "LPVOID lpParameter".
Когда пытаюсь передать в качестве параметра ссылку на какую-то конкретную переменную, скажем типа DWORD, компилятор выдает ошибку о невозможности приведения типа *unsigned long к *void.
Если это возможно, бросьте какой нить пример или ссылку на готовый исходник.
Заранее благодарен за любую оказанную помощь.
Отправлен: 03.09.2006, 12:10
Вопрос задал: Юра (статус: 2-ой класс)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Jadd
Здравствуйте, Юра!
Ну правильно компиллер ругается. Дело в том, что есть два вида тайп кастинга (преобразования типов) - явный и неявный. К явным относят преобразования, заданные самим программером, а неявные - это к чему можно преобразовать на стадии компиляции (к примеру char к int всегда неявно преобразуется или int к double.....с оговоркой естессно). Данный случай требует явного приведения передаваемого значения к LPVOID или просто к *void. Вспомните, что тип указатель на void (или просто *void) введен в С++ как средство для
передачи (в функцию, например) значений любого типа. Посему выход в Вашем случае - это написать так:
DWORD dwParam;
.............
CreateThread(....., (LPVOID)dwParameter, .....);
Примерно так.
Успехов.
--------- Если в сердце дверь закрыта, нужно в печень постучаться
Ответ отправил: Jadd (статус: Профессионал) Адрес: Санкт-Петербург WWW:http://www.sport-diary.ru ICQ: 28260749 ---- Ответ отправлен: 03.09.2006, 12:28