请教各位达人,一个BSTR类型的字符串截取问题!!!!!!!!!!!!

CH_MARS 2007-02-07 01:00:57
现在想实现Cstring.Mid()的方法

不做数据类型转换

自己手工写个类似Mid(iStart,iEnd)的方法

能否提供下源码给参考下,谢谢了!
...全文
258 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
CH_MARS 2007-02-07
  • 打赏
  • 举报
回复
还不完善,需要改进。
CH_MARS 2007-02-07
  • 打赏
  • 举报
回复
我写好了
CComBSTREx CComBSTREx::Mid(long f,long s)
{
int startpoint=f;
int endpoint=s;

wchar_t *buf1=new WCHAR[m_ComBSTR.Length()+1];

if(m_ComBSTR.Length()>0)
{
wcsncpy(buf1,m_ComBSTR+startpoint,endpoint);
buf1[endpoint] = '\0';
}

return buf1;
}
CH_MARS 2007-02-07
  • 打赏
  • 举报
回复
能否写段代码,给参考下,刚介入ATL模式,还不熟悉,谢谢了。
Kudeet 2007-02-07
  • 打赏
  • 举报
回复
SysAllocString分配空间,然后用wcscpy拷贝字符串
wenbaby 2007-02-07
  • 打赏
  • 举报
回复
一种比较简单的方式:
memcpy(result,ori + iStart,(iEnd - iStart) * 2);
result 为结果,需要提前分配内存
ori 为源.
king820802 2007-02-07
  • 打赏
  • 举报
回复
自己写个循环不就行了?
BSTR 是宽字符,前面加个长度而已

3,245

社区成员

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

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