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调用时,是否有一种很好的,规范的方法来编组代理?