UnicodeString和WideString

ooolinux 2016-12-04 09:03:41
AnsiString升级,是不是应该都用UnicodeString?
WideString基于BSTR是不是COM和OLE专用?
...全文
485 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
ccrun.com 2016-12-05
  • 打赏
  • 举报
回复
WideString 是为COM而生 虽然现在VCL组件许多字符串相关的属性都是UnicodeString类型的,但AnsiString也不是就被淘汰了,涉及ANSI编码的还是要用到AnsiString
我不懂电脑 2016-12-05
  • 打赏
  • 举报
回复
WideString是老用法,新用法都是UnicodeString
  • 打赏
  • 举报
回复
引用 7 楼 u010165006 的回复:
[quote=引用 5 楼 DelphiGuy 的回复:] 是引用计数,敲错了。
那么2个AnsiString或UnicodeString字符串,可能共享相同的c_str()?引用计数为0才释放内存吗?[/quote] 完全可能,使用copy on write技术,某个串被修改的时候才会分裂出自己单独的拷贝。你可以看一下反汇编代码,涉及写串的代码,编译器都隐含调用了UniqueString保证被写的串引用计数为1。
ooolinux 2016-12-05
  • 打赏
  • 举报
回复
引用 5 楼 DelphiGuy 的回复:
引用计数,敲错了。
那么2个AnsiString或UnicodeString字符串,可能共享相同的c_str()?引用计数为0才释放内存吗?
ooolinux 2016-12-05
  • 打赏
  • 举报
回复
引用 2 楼 ccrun 的回复:
WideString 是为COM而生 虽然现在VCL组件许多字符串相关的属性都是UnicodeString类型的,但AnsiString也不是就被淘汰了,涉及ANSI编码的还是要用到AnsiString
涉及ANSI编码的主要有哪些?
  • 打赏
  • 举报
回复
引用计数,敲错了。
ooolinux 2016-12-05
  • 打赏
  • 举报
回复
如果写数据库程序,比如Access数据库、SQLite数据库、SQL Server数据库和MySQL数据库等,应该用什么类型字符串呢?
引用 3 楼 DelphiGuy 的回复:
WideString不支持应用计数和代码页,内存管理使用windows API,在移动版编译器中不支持。
应用计数是什么?
  • 打赏
  • 举报
回复
WideString不支持应用计数和代码页,内存管理使用windows API,在移动版编译器中不支持。

13,873

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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