用vc制作了一个ocx控件,控件的结果保存在Float Amp[12];Float DC[12];Cstring str中;如何设计外部接口函数,使控件外部能够通过接口能够获得数组和Cstring串的数据。跪求各位老大。 

解决方案 »

  1.   

    楼上的能说具体点么,刚学ocx
      

  2.   

    Float数组用指针传递就可以
    HRESULT GetData(float **ppData);
    HRESULT SetData(float *pData);
    CString最好使用BSTR类型来传递
    HRESULT GetString(BSTR *pbsStr)
    {
    *pStr = m_sStr.AllocSysString();
    return S_OK;
    }
    HRESULT SetString(BSTR bsStr)
    {
    m_sStr = COLE2T(bsStr);
    return S_OK;
    }
      

  3.   

    对于float 可以用VARIANT 类型来处理,字符串使用BSTR
    float 对应VT_R4
    idl 接口的定义可以如下
    HRESULT GetArray([out,retval]VARIANT* pvar);
    HRESULT GetString([out,retval] BSTR* pbstr);使用VARIANT BSTR 使得你的ocx将更具有通用性(例如可以使用脚本语言交互,可以再VB中使用等)
      

  4.   

    楼上的,我用的是ActiveX做的,并没有用ATL走控件,当如何设计接口
      

  5.   

    使用MFC做ActiveX控件也一样了,为ActiveX添加方法,你可以设定方法的参数类型