CreateThread()错误

时间:2011-06-27 01:29:20

标签: visual-studio multithreading createthread

#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 个答案:

答案 0 :(得分:3)

定义如下

DWORD WINAPI MyThreadProc(LPVOID lpParameter)

CreateThread()需要__stdcall调用约定。