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

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

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.04.2016, 22:45   #1
JinAnton
Пользователь
 
Регистрация: 04.01.2011
Сообщений: 54
По умолчанию Невозможно преобразовать параметр структуры HWND в "void *" - C++ WinAPI

Здравствуйте форумчане, есть структура CParam :
Код:
struct CParam
{
    int N;
    int **A;
    HWND hWndOut;
    BOOL bComplete;
};
для передачи параметров нити :
Код:
void ThreadA(void *pvParam)
{
    if(!pvParam)
    {
        _endthread();
        return;
    }
    CParam *pParam = (CParam *)pvParam;
    *(pParam->A) = new int [pParam->N];
 
    srand(GetTickCount());
    for(int i=0; i<pParam->N; i++)
    {
        (*pParam->A)[i] = rand()%1999 - 999;
    }
 
    _endthread();
}
при создании потока
Код:
unsigned long ulThreadIdA = _beginthread( ThreadA, 0, param1);
компилятор выплевывает вот такую вот ошибку
Цитата:
error C2664: _beginthread: невозможно преобразовать параметр 3 из "CParam" в "void *"
1> Для выполнения данного преобразования нет доступного оператора преобразования, определенного пользователем, или вызов оператора невозможен
Как с этим бороться?
JinAnton вне форума Ответить с цитированием
Старый 08.04.2016, 22:51   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Причем тут HWND?

param1 как объявлено?
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 09.04.2016, 02:21   #3
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

в заголовке одно, в теме иное.

вам надо брать адрес структуры.
причем структура не должна быть создана на стеке.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Невозможно преобразовать параметр 1 из "System::Net::Mail::SmtpClient ^" в "System::String ^" Вероника99 C# (си шарп) 4 18.05.2015 22:22
error C2664: PrintArray: невозможно преобразовать параметр 1 из "int **" в "const int **" revizor Помощь студентам 6 07.05.2013 14:07
невозможно преобразовать параметр MIKE11IPME Помощь студентам 5 28.02.2013 03:38
в Pascal ABC.Net ошибка:"невозможно явно преобразовать тип integer к System.random" ameks94 Паскаль, Turbo Pascal, PascalABC.NET 3 23.12.2012 02:04
Как обойти "преобразование типа из "string" в "float" невозможно" lexluter1988 Помощь студентам 1 07.08.2010 12:23