当前位置:  开发笔记 > 编程语言 > 正文

P/Invoke - 封送委托作为函数指针+ void*

如何解决《P/Invoke-封送委托作为函数指针+void*》经验,为你挑选了0个好方法。

C中一个相当普遍的习惯用于采用多态闭包的函数将其表示为两个参数,一个函数指针和一个void指针(它作为函数指针的一个参数传递).

从GPGME库中获取的示例:

typedef gpgme_error_t (*gpgme_passphrase_cb_t) (void *hook,
                                                const char *uid_hint,
                                                const char *passphrase_info,
                                                int prev_was_bad, 
                                                int fd);

void gpgme_set_passphrase_cb (gpgme_ctx_t ctx,
                              gpgme_passphrase_cb_t cb, 
                              void *hook_value);

从概念上讲,函数指针加上void指针代表与C#(一个闭包)中的委托相同的东西.在进行这种P/Invoke调用时,是否有一种很好的,规范的方法来编组代理?

推荐阅读
mobiledu2402851373
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有