__declspec(dllexport)  COMPLEX[8] Hilbert(COMPLEX input[8])
{
         COMPLEX Analytical_Signal[8]; ......
...... return Analytical_Signal; //return the analytic signal}以上是我的代码,其中COMPLEX是自己定义的STRUCTURE,我的目的是想在DLL中返回一个数组,但编译出错,请问是为什么?重要的是:怎样在DLL中返回一个经过处理的数组呢?谢谢大家!

解决方案 »

  1.   

    pass in a pointer and max length, 
    process it in the dll
      

  2.   

    sorry....you don't really say something I think...
      

  3.   

    将数组放在DLL导出函数的VARIANT类型的返回值中实现了将数组返回DLL中添加导出函数VARIANT _stdcall retVariantArray(void) {
             COleSafeArray saRet;
             DWORD numElements[] = {10, 10}; // 10x10         // Create the safe-array...
             saRet.Create(VT_R8, 2, numElements);         // Initialize it with values...
             long index[2];
             for(index[0]=0; index[0]<10; index[0]++) {
                for(index[1]=0; index[1]<10; index[1]++) {
                   double val = index[0] + index[1]*10;
                   saRet.PutElement(index, &val);
                }
             }         // Return the safe-array encapsulated in a VARIANT...
             return saRet.Detach();
          } 并在DEF文件中声明导出函数
          retVariantArray
      

  4.   

    不能返回数组. 但可以这样:
    __declspec(dllexport)  void Hilbert(COMPLEX input[8], COMPLEX out[8])通过参数返回