none
请教这段C/C++代码用C#如何写? RRS feed

  • 问题

  • WORD SumData(void* buf, int size)
    {
    WORD sum = 0;
    int i;

    for(i=0;i<size;i++)
    sum += ((BYTE*)buf)[i];

    return sum;
    }

    说明:其中buf是一个struct。size是这个struct的sizeof - 2。
    冰之梦
    2010年7月26日 3:22

答案

  • 试试下面的代码,前提是指针变量buf参数结构中存储的数据可转化为int

    int SumData(object[] buf, int size)

    {

         int sum = 0;

         for(int i =0; i<size; ++)

        {

           sum += (int)object[i];

           return sum;

        }

    }

    2010年7月27日 6:14

全部回复

  • C# Interop 好像不支持 void* 指向 struct,虽然它支持 void*,但只能针对基元类型,不能用 void* 表示函数指针,委托或者结构。Marshal 类提供了一些机构的操作方法,但愿对楼主有帮助。
    Mark Zhou
    2010年7月26日 9:16
  • 试试下面的代码,前提是指针变量buf参数结构中存储的数据可转化为int

    int SumData(object[] buf, int size)

    {

         int sum = 0;

         for(int i =0; i<size; ++)

        {

           sum += (int)object[i];

           return sum;

        }

    }

    2010年7月27日 6:14