我正在编写一个需要进行一些事件处理的 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/