Вы пытаетесь задержать указатель void*
, что недопустимо.Сначала вы должны привести его к другому типу указателя.Поскольку ваш параметр является указателем на long
, вам нужно сделать это вместо этого:
long *value = (long*) lpvParam;
Или, если поток не нуждается в доступе к исходной переменной:
long value = * (long*) lpvParam;
Сет прав, хотя.Исходная переменная исчезнет к тому времени, когда поток фактически начнет работать.Если вы пытаетесь передать его значение потоку, сделайте это вместо:
// notice the '&' operator is gone now...
hThread = CreateThread(NULL, 0, MyCallbackFunction, (LPVOID)value, NULL, &dwThreadId );
...
long value = (long) lpvParam;