请大佬帮忙,COM接口返回大字符串为空

xoyo_ars 2020-04-27 03:24:34
通过下面接口返出字符串,数据量比较大,两万多字节。

StartFileScan([in] BSTR szFilePath, [out,retval] BSTR* pVal)
{
...
*pVal = m_strScanResult.AllocSysString(); //m_strScanResult是CString
}

在返回之间,VS调试查看内存,pVal存贮的是*pVal的地址、转到该地址存贮是字符串,没问题,但返回到调用模块后

CoInitializeEx(NULL,COINIT_MULTITHREADED);
BSTR pstr = pTest->m_Client->StartFileScan(pTest->m_ScanPath.GetString());

这里pstr地址与接口内*pVal是一致的,但并没有存字符串,不懂是什么原因呀,小字符串是没问题的,难道是和MTA套间有关?
...全文
228 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
an_bachelor 2020-04-30
  • 打赏
  • 举报
回复
看下返回值,也许方法返回了其他错误。
「已注销」 2020-04-29
  • 打赏
  • 举报
回复
不是通过 StartFileScan 的参数返回的吗,怎么又成了返回值了。
schlafenhamster 2020-04-27
  • 打赏
  • 举报
回复
两万多字节 20k 左右 不算大

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧