VC6下CreateThread的回调函数无法直接用函数模板生成,需要一层分装
来源:互联网 发布:淘宝双方已评 不显示 编辑:程序博客网 时间:2024/04/28 16:06
CreateThread的回调函数格式为:DWORD WINAPI XXX(LPVOID lpv)
使用示例:
DWORD WINAPI CB(LPVOID lpv)
{
return 0;
}
CreateThread(NULL, NULL, CB, NULL, NULL, NULL);
当把CB更改为模板函数时,会发生错误:
error C2664: 'CreateThread' : cannot convert parameter 3 from 'unsigned long (void *)' to 'unsigned long (__stdcall *)(void *)'
None of the functions with this name in scope match the target type
template<typename TType> DWORD WINAPI TCB(LPVOID lpv)
{
return 0;
}
CreateThread(NULL, NULL, TCB<SomeType>, NULL, NULL, NULL);
解决办法是为TCB添加一层封装:
template<typename TType> class TCB
{
public:
static DWORD WINAPI Function(LPVOID lpv)
{
return 0;
}
};
CreateThread(NULL, NULL, TCB<SomeType>::Function, NULL, NULL, NULL);
- VC6下CreateThread的回调函数无法直接用函数模板生成,需要一层分装
- 函数的分装
- 为什么需要回调函数?
- 解决回调函数里面回调另一个函数,另一个函数的参数需要依赖这个回调函数(promise)
- 指针 下:函数指针,函数指针数组,函数指针数组的指针,回调函数详解
- 用类的成员函数作为窗口回调函数
- 函数指针的使用--回调函数
- matlab 回调函数函数的使用方法
- Java的回调函数及模板方法
- gearman c 回调函数无法使用的问题
- VC6.0下直接用DDK编译驱动程序的方法
- VC6.0下直接用DDK编译驱动程序的方法
- VC6.0下直接用DDK编译驱动程序的方法
- VC6.0下直接用DDK编译驱动程序的方法
- 回调函数理解,需要整理
- linux下通过模板在创建线程时, 在回调函数中调用不同的类方法
- 函数call_user_func(),回调函数
- 钩子函数---回调函数
- 网站的更改规律
- Javascript 文件操作(整理版)
- 解析Thu Aug 08 09:16:52 CST 2013格式的字符串为日期对象
- PowerDesigner的使用安装和数据库创建
- 英文缩写及简介,不断更新中
- VC6下CreateThread的回调函数无法直接用函数模板生成,需要一层分装
- 学生信息管理系统验收总结
- Android中PopupWindow的使用
- shell命令之解压缩
- 针对于jetty部署iMatrix平台内存溢出问题解决方案
- 搜索引擎大PK谁将是最后的王者
- Node.js Cannot find module 'xxx' 有关问题解决
- FreeBSD软件安装卸载工具--Ports和Packages详解!
- 启动apk或者服务的常用方法