P /调用C函数有点混乱

时间:2013-11-21 06:30:24

标签: c# .net c interop pinvoke

我正在尝试为库中的一些重要函数创建一些绑定。虽然我有点困惑。几乎所有的主要功能都是这样的(取自标题):

     KBResult (*EnumScreens) (
          IKB              *thiz,
          IKCallback         callback,
          void                     *callbackdata
     );


     KBResult (*GetScreen) (
          IKB               *thiz,
          IKScreenID               screen_id,
          IKScreen         **ret_interface
     );

KBResult KBResult_API KBResultError(
                                          const char  *msg,    /* message */
                                          KBResultResult    result  /* result */
                                    );

我的第一个困惑是,当KBResult在每个人的前面时,我怎么写这个?我需要包括那个吗?第二个问题是我如何pinvoke类似这样的类型:

 IKB              *thiz,
 IKCallback        callback,
 void             *callbackdata

因为它不像int那么简单,所以我不知道如何编写它。这是编组的目的吗?把它变成类似的类型?我有一段时间试图解决这些问题。除了swig之外,我已经尝试过各种工具(这只是因为它实际上不会生成任何东西,可能是我缺乏经验),并且每个工具都会产生大量的错误。所以我决定手工完成。任何人都可以帮我理解这个吗?

0 个答案:

没有答案