描述:
返回字符串
像这样:
HRESULT Func(BSTR str1, BSTR str2, BSTR str3)
{
str3 = str1 + str2;
}
解决方案1:
http://www.whooper.co.uk/excelvariants.htm
解决方案2:com出参都要指针/引用形式
解决方案3: 这是规则,都遵从就不会有问题
谁没遵从那就是谁的问题
BSTR要在函数内部分配内存,由调用者释放。
--------------------------
那不是挺危险?
[out, retval] BSTR *Out
*Out = bstrOut.Copy();
#include <comdef.h>
_bstr_t bstr1(str1);
_bstr_t bstr2(str2);
bstr1 = bstr1+bstr2;
str3 = bstr1.copy();
BSTR要在函数内部分配内存,由调用者释放。
HRESULT Func(BSTR str1, BSTR str2, BSTR* pstr3)
{
CComBSTR bstrResult;
bstrResult=CComBSTR(str1) + CComBSTR(str2);
*pstr3= bstrResult;
bstrResult.Detach();
}