接口如下:
[propget, id(3), helpstring("property Result")] HRESULT Result([out, retval] BSTR *pVal);我要把结果写入到pVal里面,可是如何知道pVal占多大的存储空间呢?比如说:
CComBSTR Result("1234");
Result.CopyTo(pVal);
我如何才能保证pVal一定能够容得下"1234"呢?
[propget, id(3), helpstring("property Result")] HRESULT Result([out, retval] BSTR *pVal);我要把结果写入到pVal里面,可是如何知道pVal占多大的存储空间呢?比如说:
CComBSTR Result("1234");
Result.CopyTo(pVal);
我如何才能保证pVal一定能够容得下"1234"呢?
CComBSTR Result("1234");
Result.CopyTo(pVal);其实是我在申请内存,然后传出接口,我开始以为是调用者申请内存,然后我来填写内存。
CopyTo这个函数的名字有迷惑性,我以为它只做内存拷贝,其实它还负责申请内存。