在项目中遇到一个棘手的问题。因为客户要求,需要在c#代码中调用c的动态链接库。
但在该动态链接库中,有些函数的参数和返回值是用了结构指针,而该结构中又有可能
包含其它结构指针(即该结构的成员并非全是简单类型变量)。在这种情况下,应该如何
调用该类型的函数,并获得返回值呢。例
结构定义
typedef struct crxmldef_definition
{
        HWord def_no;                   /* definition番号 */
        COLUMNS *model_cols;
} CRXMLDEF_DEFINITION;
函数定义
LOCAL CRXMLDEF_DEFINITION *definition_alloc();
LOCAL HWord dtd_content_check(PARM_STRUCT *parm_struct,xmlElementContent *conten
t_ptr,CRXMLDEF_INFO *info,CRXMLDEF_DEFINITION *def);请问在c#中应该如何使用该结构并调用这些函数?

解决方案 »

  1.   

    在一段unsafe代码里不能实现吗??如果我们真的陷在焦油坑中,那就让后来人踩着我们过去吧
      

  2.   

    是在unsafe中处理的。如果结构中没有结构指针类型的成员,是很容易的。现在的难点就是结构中又包含了结构指针。
      

  3.   

    问题解决了。用Marshal.AllocCoTaskMem预先分配内存,再封送处理即可