描述:
在Fun.h里
public:
STDMETHOD_(long, WarningCheck)();
STDMETHOD_(BOOL, IsCP9k)(/*[out, retval]*/ int nID);
};
#endif //__FUN_H_
在Fun.cpp里
STDMETHODIMP_(long) CFun::WarningCheck ()
{
// 成员变量初始化
。。。。。。
代码。。。。
return m_RestPaper;
}
STDMETHODIMP_(BOOL) CFun::IsCP9k(int nID)
{
// TODO: Add your implementation code here
return TRUE;
}
--------------------------------------------------------------------------
错误--------------------Configuration: Atl2 - Win32 Debug--------------------
Creating Type Library...
Microsoft (R) MIDL Compiler Version 5.01.0164
Copyright (c) Microsoft Corp 1991-1997. All rights reserved.
Processing F:\Atl2\Atl2.idl
Atl2.idl
Processing C:\Program Files\Microsoft Visual Studio\VC98\INCLUDE\oaidl.idl
oaidl.idl
Processing C:\Program Files\Microsoft Visual Studio\VC98\INCLUDE\objidl.idl
objidl.idl
Processing C:\Program Files\Microsoft Visual Studio\VC98\INCLUDE\unknwn.idl
unknwn.idl
Processing C:\Program Files\Microsoft Visual Studio\VC98\INCLUDE\wtypes.idl
wtypes.idl
Processing C:\Program Files\Microsoft Visual Studio\VC98\INCLUDE\ocidl.idl
ocidl.idl
Processing C:\Program Files\Microsoft Visual Studio\VC98\INCLUDE\oleidl.idl
oleidl.idl
Processing C:\Program Files\Microsoft Visual Studio\VC98\INCLUDE\servprov.idl
servprov.idl
Processing C:\Program Files\Microsoft Visual Studio\VC98\INCLUDE\urlmon.idl
urlmon.idl
Processing C:\Program Files\Microsoft Visual Studio\VC98\INCLUDE\msxml.idl
msxml.idl
F:\Atl2\Atl2.idl(18) : error MIDL2269 : procedures in an object interface must return an HRESULT : [ Procedure 'WarningCheck' ( Interface 'IFun' ) ]
F:\Atl2\Atl2.idl(19) : error MIDL2269 : procedures in an object interface must return an HRESULT : [ Procedure 'IsCP9k' ( Interface 'IFun' ) ]
F:\Atl2\Atl2.idl(19) : error MIDL2042 : [out] parameter is not a pointer : [ Parameter 'nID' of Procedure 'IsCP9k' ( Interface 'IFun' ) ]
Error executing midl.exe.
Atl2.dll - 3 error(s), 0 warning(s)
--------------------------------------------------------------------------------------
WarningCheck 接口是我自己添加上去的,正常方法添加方法后无法显示WarningCheck
所以请高手指教下,无参数,有返回值的方法如何添加,还有我错在哪了
解决方案1:
这样改:
STDMETHOD(IsCP9k)(/*[out, retval]*/ int* nID);
STDMETHODIMP HRESULT CFun::IsCP9k(int* nID)
{
*nID = 0;
return S_OK;
}
还需要改IDL。
因为用STDMETHOD_的返回和out,retval可能冲突。