定义线程函数指针类型


我现在要写一个线程同步的程序,想用一个数组来存放一些线程函数,于是需要先定义一个线程函数指针类型,代码如下:

   
  typedef DWORD WINAPI (*ptrThreadFunc) (PVOID pvParam);
 

但是在VS2008中报错,错误信息如下:

   
  1>------ 已启动生成: 项目: InterlockedFunctions, 配置: Debug Win32 ------
  
1>正在编译...
1>main.cpp
1>g:\workspace\exercise\cppprimer\interlockedfunctions\interlockedfunctions\main.cpp(61) : error C2059: 语法错误 : “(”
1>生成日志保存在“file://g:\Workspace\Exercise\CPPPrimer\InterlockedFunctions\InterlockedFunctions\Debug\BuildLog.htm”
1>InterlockedFunctions - 1 个错误,0 个警告
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========

对WIndows编程不是很熟悉,还请大家帮忙解答~应该怎么修改呢?

操作系统 C++

showyz 12 years, 11 months ago

WINAPI 对函数调用约定的修饰放在括号里面
typedef DWORD (WINAPI*ptrThreadFunc) (PVOID pvParam);
Windows 自带有该类型的指针: 为PTHREAD_START_ROUTINE

633091 answered 12 years, 11 months ago

Your Answer