iPhone和其他移动设备上c++事件处理的最佳方式

Best Way C++ Eventing Handling on iPhone and other mobile devices

本文关键字:事件处理 c++ 最佳 方式 其他 移动 iPhone      更新时间:2023-10-16

我正在编写一个需要做一些事件处理的c++库。我打算使用JNI在Android环境中调用它,我也打算从iPhone应用程序中调用它。所以我想知道最好的c++库或解决方案的事件处理?我想要MIT或BSD类型的许可证。或者我可以用objective - C写然后在两种设备上分发?我没有mac,所以现在没有XCode。我需要一个简单的解决方案,没有线程问题,没有GPL等许可证。或者有没有一种方法可以在没有库的情况下在Native c++中轻松地做到这一点。我正在寻找关于这方面的建议。它可能还会做的一件事是连接到SQLite。由于

您可以使用std::tr1::function编写一些非常简单的东西。事件可以只是一个函数包装器:

#include <tr1/functional>
typedef std::tr1::function<void ()> event;
void my_event_handler()
{
    // handler code here
}
class C {
public:
    void my_method_handler()
    {
        // handler code here
    }
};
int main(int argc, char* argv[])
{
    event ev;
    ev = &::handler;  // assign an event handler
    ev();             // fire an event
    // same thing, but using a method as a handler
    C c;
    ev = std::tr1::bind(&C::my_method_handler, &c);
    ev();
}

上面的代码是非常可移植的,我在iOS, Android, OSX, Windows和cygwin上运行类似的代码