BOOL  IO_GetPageDimension(VOID *p, long *imgwide, long *imghigh);
BOOL  IO_StartScanPage(VOID *p, long *imgwide, long *imghigh);
short IO_GetImageBlock(VOID * buf, short line,void *param, long w, long h);如何在C#中用DllImport封装以上3个函数??(关键是Void*类型怎么封装!!!!!!)

解决方案 »

  1.   

    关键靠你返回的是什么数据?长度多少?
    用足够长度的ref byte[]总是可以的。
    如果只是一个指针,
    用ref int 也可以。
      

  2.   

    void*那些,是输入参数还是输出参数?
    输入的话,用ref xxx代替,如果是输出,则需要先开辟缓冲区,比如new byte[128]这样,再以ref形式传入long用int代替
    long*用ref int代替
      

  3.   

    建议根据传入的数据类型用重载的方法解决,因为C#里面没有与void*对应的数据类型,(intptr可以算一个,不过如何将地址赋值给它是个大问题).例如:
    IO_GetPageDimension(ref int, ...)
    IO_GetPageDimension(byte[], ...)