添加自动化方法的时候,发现方法的返回值没有CString类型。但是我看到别人做的控件返回的是CString类型,不知道是怎么做的。我用的是VC6.0。
另有人说用BSTR,不知道怎么用法,希望有经验的告诉。多谢啦
另有人说用BSTR,不知道怎么用法,希望有经验的告诉。多谢啦
解决方案 »
- 下面代码为什么会出错,求帮助
- 发送消息的快捷键失效问题!
- 如何在一个类中修改另一个类中的成员变量?
- 帮忙看看CString format的时候出错.
- 请教使用OpenGL如何修改圆形运动轨迹代码画椭圆型运动轨迹的方法
- 在EVC3.0中如何把自己的图标加到taskbar上面?在线,很急!!!
- 请问各位大虾,注册工作者进程的函数是怎么用的?
- 窗口超类化
- 请教vc中如何象vb中的Line Input #1, textline那样从文本文件中一行一行地读取?
- 菜鸟的小问题
- [转帖]VisualStudio中进行Debug时,控制台经常会无法正常关闭,控制台仍然存在[解决办法]
- vc2005关于打包的"系统必备"问题
然后你把控件添加到工作,会自动生成包装类,返回的参数刚好是CString
CString是可以用来做字符串编码转换的,它不管是在ansi还是unicode版本下面,都直接对其赋char*或者wchar*,难道这功能大家没用过?
我查了MSDN,上面的原话是这样说的:Use ::SysFreeString in the rare case that you need to deallocate the returned string.
在极少数情况下你需要用::SysFreeString来释放返回字符串。那么,什么是极少数情况?一般情况下不需要释放返回字符串的内存?希望有经验的告知
因为是被MFC封装过一层的,所以才是这样。
如果你调用一个裸的COM接口,返回BSTR,是需要释放的。
_bstr_t to CString