首页 > 解决方案 > 将 Objective-C 函数作为 C++ 指针传递

问题描述

我正在用 Objc++ 编写一个文件,在其中调用TooJpeg用 C++ 编写的库的一个函数,它在第一个参数中接收一个函数作为指针,如下所示:

void writeByte(unsigned char byte)
{
    //....
}

- (void)foo
{
    //...
    TooJpeg::writeJpeg(writeByte, array, width, height);
}

上面的代码有效,但我需要调用 objc 函数而不是 C++ 函数,如下所示:

- (void)writeByte:(unsigned char)byte
{
    //....
}

- (void)foo
{
    //...
    TooJpeg::writeJpeg(writeByte, array, width, height);
}

上面的代码显然不能编译。

第一个参数的类型是typedef void (*WRITE_ONE_BYTE)(unsigned char);

知道我可以做些什么来将函数writeByte作为指针传递吗?

更新:

在此处输入图像描述

C++ 代码是这样的:https ://create.stephan-brumme.com/toojpeg/

谢谢你。

标签: c++objective-cclosures

解决方案


推荐阅读