如何为以下类型的 C 程序创建 C++ 包装器 class?

How to create a C++ wrapper class for the following kind of C program?

我之前创建了简单的 C++ 包装器 classes,但我当前的问题有点令人困惑。我有一个可以连接到 USB 端口的自定义硬件,它会根据执行不同事件处理程序的硬件配置给出某些信息。它使用 Ethernet-over-USB 协议。 PC端的C代码是这样的:

// Relevant headers

int Event1handler(){
  // Code to process event 1
}

void Event2handler(){
  // Code to process event 2
}

int main(void){
    // Code to setup calls to Event1handler() and Event2handler() using Open Sound Control methods
}

现在我很困惑如何将 C++ class 包装在上面的代码周围。在 C 程序中,根据来自 USB 的信息自动调用事件处理程序。我如何将事件处理程序实现为 class 的方法,根据硬件发送的信息自动调用?我可以将 main() 函数的内容放入 class 的构造函数吗?

编辑:我不需要 class 的单独方法。我只需要将 C 程序包装成 class。将所有事件处理程序放入一个方法中也很好(如果可能的话)。我只需要每个事件处理程序接收到的数据。

Edit2:这是使用 OpenSoundControl 的实际事件处理程序和调用的样子:

// Relevant headers

int Event1handler(const char *path, const char *types, lo_arg **argv, int argc, void *data, void user_data){
  // Code to process event 1
}

void Event2handler(const char *path, const char *types, lo_arg **argv, int argc, void *data, void user_data){
  // Code to process event 2
}

int main(void){
    // Code to setup calls to Event1handler() and Event2handler() using Open Sound Control methods
    lo_server_thread st;
    // "if" means one integer and one float
    lo_server_thread_add_method(st, "/folder/data1", "if", Event1handler, NULL);
    lo_server_thread_add_method(st, "/folder/data2", "if", Event2handler, NULL);
}

只需创建一个 class 并将代码放入其中,例如在您的 .h 文件中:

class EventWrapper
{
public:
   EventWrapper();
   static int Event1Handler();
   static void Event2Handler();
}

然后在您的 .cpp 文件中:

#include "EventWrapper.h"
// Include relevant headers for your USB device

EventWrapper::EventWrapper()
{
   // Code to setup calls to Event1handler() and Event2handler()
   // using Open Sound Control methods.
}

int EventWrapper::Event1Handler()
{
   // Code to process event 1
}

void EventWrapper::Event2Handler()
{
   // Code to process event 2
}

在不了解程序的所有细节的情况下,您可能不得不研究什么是静态的以及您希望如何处理它。