佚名通过本文主要向大家介绍了atl34砂轮,atl71.dll修复,atl方形动力电池,atl80.dll官方下载,atl71.dll一键修复等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: ATL,添加方法,参数有in和没in,感觉没什么区别啊!
描述:
解决方案1:
只是作为标注提示的作用
编译预处理时会被直接忽略
描述:
初学ATL做com, 对方法参数有in和没in分别做了试验,结果没什么区别,他们的区别在哪里呢?
idl:
[id(2), helpstring("方法Add")] HRESULT Add(LONG a, LONG b, [out,retval] LONG* pVal);
[id(3), helpstring("方法Add2")] HRESULT Add2([in] LONG a, [in] LONG b, [out,retval] LONG* pVal);
.cpp
STDMETHODIMP CCalc::Add(LONG a, LONG b, LONG* pVal)
{
*pVal = a + b;
return S_OK;
}
STDMETHODIMP CCalc::Add2(LONG a, LONG b, LONG* pVal)
{
*pVal = a + b;
return S_OK;
}
C#测试:
Calc c = new Calc();
int ret = c.Add(2, 3); //ret等于5
ret = c.Add2(3, 3); //ret等于6
解决方案1:
The [in] attribute is applied to a parameter by default when no directional parameter attribute is specified.
解决方案2:只是作为标注提示的作用
编译预处理时会被直接忽略