c++ - 将对象/数据从库传递到控制台应用程序(如何)

标签 c++ events signals

我想用 C++ 做一个类似系统的事件处理。我曾尝试创建类似的东西;

###Library
class manager
{
public:
   void init(void i) { x = i };
   void fire()
   {
      x("test");
   }
private:
   void x;
};

(空格)

###Console App
void tester(char* i)
{
   printf("%c", i);
}
int main()
{
   manager m;
   m.init(tester);
   m.fire();
   return 0;
}

是的,我现在认为这是完全错误的方式,但我需要类似的东西。我是新手,我不明白为什么我不能做出那样的东西。

最佳答案

您似乎在寻找函数指针。像这样:

typedef void (*EventFunc)(char*);

class manager
{
public:
   void init(EventFunc callback) { x = callback };
   void fire()
   {
      x("test");
   }
private:
   EventFunc x;
};

其余代码应该保持不变(除了 printf("%c", i); 应该是 printf("%s", i); ).

关于c++ - 将对象/数据从库传递到控制台应用程序(如何),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17891943/

相关文章:

c++ - 'volatile uint8_t* and ' uint8_t (*) 类型的无效操作数

c++ - 是否违反了 C/C++ 运算符优先级和关联性规则?

c++ - 如何使用CV CAP_PROP_FOURCC?

c++ - 将 const char* 转换为 vector<double> 更好的方法

.net - Event.Trigger Event.Publish f#

linux - 带有信号的 Fork() 子进程

python - 让线程等待定时器或信号?

Linux/vxworks 信号

c# - 短暂的事件处理程序有什么问题吗?

JQuery MouseUp 报告 CHILD 元素