String 和 AnsiString 什么区别

skyhole 2002-03-19 11:51:37
而且, 为什么MessageDlg 有时用Application->MessageBox() 有时却又MessageBox() 有什么区别吗? 怎样区分呢?
...全文
47 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
greatefish 2002-03-19
  • 打赏
  • 举报
回复
我来说两句:
1:AnsiString是BCB对字符串处理的一个class,而String是标准c++
字符串的一种数据类型。
在功能上:String比char[n]方便,AnsiString比String方便。
2:Application->MessageBox是BCB中TApplication的一个method,
MessageBox是WIN32中SDK的一个函数。Application->MessageBox
是MessageBox函数的简化。

skyhole 2002-03-19
  • 打赏
  • 举报
回复
LuoGD: AnsiString 优在哪里呢
为什么有时我仅仅用MessageBox()系统会提示我错误 我改成Application->
MessageBox() 就通过了呢?
LuoGD 2002-03-19
  • 打赏
  • 举报
回复
AnsiString 是BCB特有的类,它是对标准string的改良
LuoGD 2002-03-19
  • 打赏
  • 举报
回复
Application->MessageBox() 和 MessageBox()是一样的.
因为MessageBox() 是TApplication的他、一个静态方法.
xiaoyu 2002-03-19
  • 打赏
  • 举报
回复
MessageDlg 封装
logical 2002-03-19
  • 打赏
  • 举报
回复
string是标准C++的字符串(全部小写);
String是BCB的一个类与AnsiString一样,定义为:typedef AnsiString String;
前面许多人把string与String搞混了.
duanfeng 2002-03-19
  • 打赏
  • 举报
回复
除非type,
string是标准C++的字符串
washliu 2002-03-19
  • 打赏
  • 举报
回复
我不知道你是不是学会了最简单的学习方法!

看看帮助文档不就知道了!
hhmmdd 2002-03-19
  • 打赏
  • 举报
回复
上面写反了,应该是typedef AnsiString String;具体位置在
sysmac.h里

namespace System
{
typedef bool Boolean; //
...
typedef AnsiString String;
...
}
kingcaiyao 2002-03-19
  • 打赏
  • 举报
回复
Application->MessageBox 是对win32 SDK中的MessageBox函数的封装,它没有API函数MessageBox中的句柄参数,AnsiString是BCB特有的类,它是对标准C++ 中String的改进,同时也是对Delphi中长字符串的模拟,MessageDlg是BCB中的一个独立的函数,它不是TAPPLICATION的成员函数。
1.::MessageBox(Handle,"How are you","Information",MB_OK+MB_ICONINFORMATION);//这里调用的是API函数,当然第一个参数你可以为NULL
2.Application->MessageBox("how are you","Information",MB_OK+MB_ICONINFORMATION);
这里调用的是Application类的一个成员函数MessageBox
3.MessageDlg("How are you","Information",mtInformation,TMsgDlgButtons()<<mbOK);
这是调用BCB中一个独立函数MessageDlg
hhmmdd 2002-03-19
  • 打赏
  • 举报
回复
在CB里typedef String AnsiString
String和AnsiString完全相等

551

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 茶馆
社区管理员
  • 茶馆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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