C ++类中的C函数指针

时间:2016-05-26 07:55:09

标签: c++ c function-pointers

所以我对做什么感到困惑,并希望有人可以提供帮助。 这是方案

我们在.C和.H文件中提供了一个API(C),并尝试将其集成到我们的C ++应用程序中,尽可能少的修改。

它们的函数指针就像它们的一个头文件中定义的那样(我不能发布实际的代码,因为它不是开源的)

typedef UINT32 (*Write)(UINT8, UINT8, UINT16)

所以我们有一个C ++类,我们称之为ABC。

在ABC类中,我在构造函数中有类似的东西。 WriteABC是ABC的成员函数。

Write = &ABC::WriteABC

问题是这与函数指针的定义不匹配而且不会编译。所以我理解它解决这个问题的简单方法就是将API中的Function指针修改为

typedef UINT32 (ABC::*Write)(UINT8, UINT8, UINT16)

下一个问题是我得到一个错误,说ABC不是一个类。即使我为C ++类包含了我的ABC.h文件,它也说同样的事情。

希望这一切都是有道理的,有人可以帮助我有点失落。

最大的问题是我希望新的Function指针可以访问我的ABC类的实例化。但是我不知道怎么去做这个,除非我指向的函数在我的类中,但是我似乎无法在不改变API的函数指针定义的情况下这样做,并且修改了(* WRITE)的typedef to(ABC :: * WRITE)现在使用该定义的其余API失败......

我似乎陷入了困境......

0 个答案:

没有答案