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

标签 c++ objective-c ios

我正在编写一个需要进行一些事件处理的 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 上运行了类似的东西。

关于c++ - iPhone 和其他移动设备上 C++ 事件处理的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7949737/

相关文章:

c++ - 从函数返回的指针无效

ios - Objective C Completion Block 导致 swift 崩溃

ios - 核心数据自定义迁移

ios - 在 Web 服务调用响应中自动填充文本

ios - 使用sdwebimage iOS从以前的单元浮华图像?

C++ async 仅使用 2 个内核

c++ - 如何在 Windows 7 上编译 ASL(基于 boost 的 Adob​​e C++ gui 库)?

c++ - 创建和释放 Qt 小部件对象

ios - WKWebView嵌入UITableViewCell时,WebView的secondHalf不会显示

ios - 打印 Alamofire 请求正文