在com组件中:
*.idl文件里:
interface IPlat : IDispatch{
.....
[id(9), helpstring("方法GetInfo")]   virtual HRESULT GetInfo(LONG* lMYType,  BSTR* sMyName)
}
com.dll的类中实现:
public:
STDMETHOD(GetInfo)( LONG* lMYType,  BSTR* sMyName)
{
CComBSTR sSTR;
*lType = MYGOODSTYPE;
sSTR.LoadString(IDS_GOODNAME);
*sName = SysAllocString(sSTR);
return S_OK;
}
。。在mfc的.exe中调用dll的接口的函数以传递数据:
LONG lMyType;
BSTR sMyName;
HRESULT hr = ::CoCreateInstance(clsid,NULL, CLSCTX_INPROC_SERVER,
                               IIDPlat, 
                                (void**)&pCOM);
if (SUCCEEDED(hr))
{
IPlat *pPlat;
pCOM->QueryInterface(IIDPlat, (void **)&pPlat);
pPlat->GetInfo(&lMyType, &sMyName);
.....
.....
}
问题:
pPlat->GetInfo(&lMyType, &sMyName);。。出现cxx0017错误:lMyType, sMyName为无法辨认的符号!!!!!!!!!!

解决方案 »

  1.   

    [id(9), helpstring("方法GetInfo")]   virtual HRESULT GetInfo( [ out ] LONG* lMYType,  [ out ] BSTR* sMyName)
      

  2.   

    不好意思,idl中的接口的方法原来就是:[id(9), helpstring("方法GetInfo")]   virtual HRESULT GetInfo( [ out ] LONG* lMYType,  [ out ] BSTR* sMyName)哪位高手还有见解???????????
      

  3.   

    aspnetwuxueyou、sinall版主呢,可否发表一下?
      

  4.   

    [id(9), helpstring("方法GetInfo")]   virtual HRESULT GetInfo( [ out ] LONG* lMYType,  [ out ] BSTR** sMyName)改成BSTR**
      

  5.   

    还是和原来差不多, lMYType,  sMyName两个输出参数都被认为是无法辨认的
    符号!怪事!
      

  6.   

    哪位有现成的可参考的原代码?请发往:[email protected]谢谢,偶吃饭去。
      

  7.   

    LONG lMyType;
    BSTR sMyName; 声明与该报错语句在同一作用域吗?