【发布时间】:2013-12-23 04:10:57
【问题描述】:
我从另一个开发人员那里继承了一个 MFC 项目。在多个 MFC 方法下,调用 COM 服务器,将字符串作为参数传递。这是当前代码库中转换模式的代表性示例:
COM 服务器:
void COMServer::foo(_bstr_t strParam)
MFC方法:
void Foo::foo(CString &csParam)
{
CComBSTR bstrParam(strDocName);
ptrToComServer->foo((BSTR)bstrParam);
}
在阅读了这个article中的字符串转换规则后,我想知道当前的转换模式是否是
- 从内存管理的角度来看是安全的
- 就复制的字符串数量而言是有效的
关于以上两个顾虑,我也想知道下面的转换会不会更好
void Foo::foo(CString &csParam)
{
_bstr_t bstrParam(csParam);
ptrToComServer->foo(bstrParam);
}
【问题讨论】: