结构体定义如下:
   struct dom_sum
{
double dsum,d2sum;
} *** m_sum[4];
 函数定义(Fraccomp.h,Fraccomp.cpp均有):
void CFraccomp::Block_search(struct dom_sum ***m_sum[4])  调用
Block_search(m_sum);
出错:1,D:\Fraccomp.cpp(195) : error C2664: 'Block_search' : cannot convert parameter from 'struct CFraccomp::dom_sum ***[4]  ' to 'struct dom_sum ***[]  '
2,Fraccomp.cpp(688) : error C2511: 'Block_search' : overloaded member function 'void (struct CFraccomp::dom_sum ***[]  )' not found in 'CFraccomp'
        fraccomp.h(20) : see declaration of 'CFraccomp'
   (我有定义呀,怎么变成struct CFraccomp::dom_sum ***[])

解决方案 »

  1.   

    你应该用typedef定义。将struct dom_sum定义成类型。否则,struct dom_sum被视为所定义类中的一个局部类型。
    typedef struct dom_sum
    {
    double dsum,d2sum;
    } *** m_sum[4];
      

  2.   

    把结构定义放到类外面
    struct dom_sum
    {
    double dsum,d2sum;
    } ;
    class CFraccomp
    {
    public:
       struct dom_sun ***m_sum[4];
    }
      

  3.   

    这样
    定义:
    void Block_search(struct dom_sum ****stru_sum);
    实现:
    void CFraccomp::Block_search(struct dom_sum ****stru_sum)
    {
    ......
    }
    调用:
    Block_search(***m_sum);
      

  4.   

    不好意思,写错了,这样调用,应该:
    Block_search(m_sum);
      

  5.   

    各位大哥,刚才那问题解决了.又出了一个问题:
    DCOM中接口的成员函数的参数可以有结构体吗?????
    我很快就结贴,呵呵!!
    co.cpp:()  //co为com中的接口类文件struct dom_sum
    {
    double dsum,d2sum;
    };STDMETHODIMP Cco::Block_search(struct  dom_sum  ****m_sum1)这样一直出错:
    G:\分形\oo\oo.idl(18) : error MIDL2011 : unresolved type declaration : dom_sum [ Parameter 'm_sum1' of Procedure 'Block_search' ( Interface 'Ico' ) ]