c#调用c++写的dll,dll中的一个函数为
HRESULT Process([in] UCHAR inarray[100], [out,retval] UCHAR outarray[100]);
其中inarray为输入的数组,outarray为输出的数组
c#中调用语句为
byte x[] = new byte[100];
x = dec.Process(inarray);编译都是正确的,但一执行就出现NotSupportedException错误
请问是怎么回事数组输入是没问题的,但得不到输出的数组

解决方案 »

  1.   

    我是直接引用的
    decLib.decClass dec;
    dec = new decLib.decClass();byte x[] = new byte[100];
    x = dec.Process(inarray);inarray是有值的,我这里省略了没写
      

  2.   

    那么你在c#中看到的dec.Process是如何声明的
      

  3.   

    在C#中看到的声明是
    byte[] decClass.process(byte[]inarray);
      

  4.   

    你试试不用返回值,把返回值做成out参数。
      

  5.   

    把返回值声明成Out就可以了,多谢Knight94
      

  6.   

    http://community.csdn.net/Expert/topic/4794/4794120.xml?temp=.5041773