我用C++写了一个COM组件, 其他人用C#调用这个组件中的方法 ,
他想在程序中直接 判断接口函数的返回值
比如 :
if ( BeginVideo())
{
}
我的接口函数BeginVideo是这样写的1,在头文件:
STDMETHOD(BeginVideo)(BSTR Keyid, int Index, int hWnd, int *pRet);2,idl 里面:
[id(5), helpstring("method BeginVideo")] HRESULT BeginVideo(BSTR Keyid, int Index, int hWnd, [out,retval]int *pRet);
3,cpp里面 :
STDMETHODIMP CHxComVideo::BeginVideo(BSTR Keyid, int Index, int hWnd, int *pRet)
{
*pRet = 888;
return S_OK;
} 可是为什么他在C#编译器里 看到函数BeginVideo的返回值始终是void呢?????
他想在程序中直接 判断接口函数的返回值
比如 :
if ( BeginVideo())
{
}
我的接口函数BeginVideo是这样写的1,在头文件:
STDMETHOD(BeginVideo)(BSTR Keyid, int Index, int hWnd, int *pRet);2,idl 里面:
[id(5), helpstring("method BeginVideo")] HRESULT BeginVideo(BSTR Keyid, int Index, int hWnd, [out,retval]int *pRet);
3,cpp里面 :
STDMETHODIMP CHxComVideo::BeginVideo(BSTR Keyid, int Index, int hWnd, int *pRet)
{
*pRet = 888;
return S_OK;
} 可是为什么他在C#编译器里 看到函数BeginVideo的返回值始终是void呢?????
你让他直接add COM reference看看,如果不行,可以把代码发给我,我帮你看看
[email protected]
BSTR Keyid, int Index, int hWnd, int *pRet
if ( BeginVideo(keyid,index,hwnd,&pret))
{
}
C#里面是不需要判断返回值的,如果函数返回S_OK则函数运行成功,否则C#会根据返回值提示出错信息的。
这个和VB是一样的。