现有DLL函数的Typedef返回函数错误

时间:2012-02-10 10:00:17

标签: c++ visual-c++ dll

我想在我的程序中使用一个具有函数

的DLL
void Set_Callback(Function Pointer)

示例代码插入了一个类似于我的VS C ++ 2010无法使用的typedef

typedef void (SET_CALLBACK)(void far pascal (*lpfnPtr)(int));

对于这一行,我得到语法错误'*'和'函数返回函数'错误。

感谢您提前的帮助

2 个答案:

答案 0 :(得分:1)

如果将其分解为两个typedef,它更易于理解和阅读:

typedef void (__stdcall * Function)(int);
typedef void (* SETCALLBACK)(Function pf);

在第一个typedef中,pascal变为__stdcall(因为pascal适用于较旧的16位系统),并且far可以删除,因为它在32/64中是多余的位结构

答案 1 :(得分:0)

应该是

typedef void far pascal (*CallbackType)(Function*);