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

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

不做数据类型转换

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

能否提供下源码给参考下,谢谢了!
...全文
221 点赞 收藏 6
写回复
6 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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 是宽字符,前面加个长度而已
回复
相关推荐
发帖
ATL
创建于2007-09-28

3216

社区成员

ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
申请成为版主
帖子事件
创建了帖子
2007-02-07 01:00
社区公告
暂无公告