Ошибка CreateThread () - PullRequest
       23

Ошибка CreateThread ()

1 голос
/ 27 июня 2011
#include <windows.h>
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <iostream.h>
#include <string.h>

    void Thread1( LPVOID param)
    {
      int a;
      a = *((int *)param);
      for (int i= 0; i <10; i++)
      printf("%d\n", a);
    }

    int main()
    {
      int a =4;
      int ThreadId;
      CreateThread( 0, 0x0100, Thread1, &a, 0, &ThreadId);

      for( int i = 0; i <11; i++)
          Sleep( 1);

      return( 1);
    }

Это простой код, но я не могу понять, почему visual studio выдаёт мне ошибку:

ошибка C2664: «CreateThread»: невозможно преобразовать параметр 3 из «void (void *)» в «unsigned long (__stdcall *) (void *)» Ни одна из функций с этим именем в области не соответствует типу цели Ошибка выполнения cl.exe.

1 Ответ

3 голосов
/ 27 июня 2011

определить следующим образом

DWORD WINAPI MyThreadProc(LPVOID lpParameter)

CreateThread () требует __stdcall соглашение о вызовах.

...