c++ - 将 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/
谢谢你。
解决方案
推荐阅读
- docker - 多层 `Dockerfile` 没有 `COPY --from=...`:我做错了吗?
- python - 读取带有多个选项的 CSV 文件,以“分隔”
- amazon-web-services - 我在标签编辑器中有很多 AWS 资源
- python - PyCharm:使用 python 控制台进行调试
- c++ - Visual Studio C++ 调试器在输入 if 语句时无法读取内存
- kubernetes - Nginx-Ingress Helm 部署 --tcp-services-configmap 未找到参数
- spring-boot - Spring Boot KeyCloak 覆盖 ClientIdAndSecretCredentialsProvider 不起作用
- bash - 给一个字符串添加多个后缀
- python - 超集无法启动:KeyError:('SQLLAB_ASYNC_TIME_LIMIT_SEC',6000)
- firebase - firebase远程配置个性化问题