#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时出错。
答案 0 :(得分:3)
定义如下
DWORD WINAPI MyThreadProc(LPVOID lpParameter)
CreateThread()需要__stdcall调用约定。