AnsiString 是一个类,String 是一个结构,char* 是一个指针 。String是Pascal的类型原型,因为C++中没有字符串数据类型的,因此使用char*来存储,char*必须是以‘/0'结尾的,否则不能按照C++的“字符串”来处理。AnsiString是为了兼容VCL中Object Pascal而写的一个类,其实这个类的内核处理还是ObjectPascal中的代码,AnsiString是自动分配内存的,并且是一个纯C++类, 和其它VCL类不一样,当声明一个AnsiString 的时候AnsiString本身只有一个指向另外内存的指针,其指向的内存才是真正存储字符串的位置,c_str()就是获取这个字符串地址的函数,但是 这个内存地址会根据AnsiString对象大小的改变而改变,就是说这个c_str()每一个返回的有可能不一样。
String在C++ Builder中和AnsiString是一样的,只是为了兼容Pascal中的String类型而作的typedefine而已。
AnsiString.c_str() 就是返回数据的字符串指针。
下面AnsiString ===>Char *
char * p;
AnsiString a = "asdf";
p = a.c_str();
接下来AnsiString ==>char
char p[64];
AnsiString a;
strcpy(p,a.c_str());
最后char ===> AnsiString
AnsiString a;
char p[25]= "asdf";
a = (AnsiString)p;
unsigned char 轉成 AnsiString
unsugned char myKey[32]="XXX";
(AnsiString)(Char *)myKey;
分享到:
相关推荐
C++Builder String,UNICODE,UTF8,ANSI互转的类,类的互相转换
String str=this->Edit1->Text; MD5 md5; int i=str.Length(); char *p=new char[i+1]; AnsiString tmp=str; strcpy(p,tmp.c_str()) ; p[i+1]='\0'; md5.update(p,i); str=md5.TranToString(); delete []p...
void _stdcall (*GetSelectPath)(char*sPath,AnsiString sTitle); HMODULE pHModule; pHModule=::LoadLibraryA("GetPath.dll"); if(pHModule>0) { (FARPROC&)GetSelectPath=::GetProcAddress(pHModule,...
delphi15 hint: frxGraphicUtils.pas(187) Warning: W1057 Implicit string cast from 'AnsiString' to 'string' delphi15 hint: frxGraphicUtils.pas(189) Warning: W1057 Implicit string cast from 'AnsiChar' to...
delphi7和delphi2010直接因字符串编码方式不一样,不能直接调用,本例子是本人编写的ascii码和unico之间的转变。同时也可以解决很多delphi2010调用delphi7编写的动态库连接问题
C++ Builder中的类型转换,非常实用。很全。各种类型都有实例。
在C++builder中对AnsiString用法的一些总结,主要个人搜集整理的资料。
Delphi中String与WideString的区别2.docx
本人总结的最常用的AnsiString操作用法
把字符串转换成16进制,送到DEMO中显示,就像miniHEX那样自己去显示16进制。 unsigned char *HexString:ASCII字符串 函数返回AnsiString标准字符 const unsigned short HSCount:转换个数
AnsiString 使用大全.txt 适合初学者使用
delphi 开发的UTF8 ansistring转换动态库。 通过DELPHI与C++测试。 前面上传的资源未经过仔细验证,有问题,不好意思,重新修正上传
这是讲解AnsiStirng类型字符串的用法的文档,里面提及了该类的诸多常用方法
基于ansistring类型开发了delphi7的高精度计算单元high.dcu,其中包含高精度加法、减法、乘法、除法、最小公倍数、最大公约数 等计算函数或过程。其接口文件如下: unit high; interface const intmax=32767; ...
UTF8字符串与AnsiString(string)字符串转换 将AnsiString字符串保存成utf8文件; 从UTF8文件中读取(文本)内容;
len := length(AnsiString(str)); xx:= char( 8- (len mod 8)); if len xuhuan:=0 else xuhuan:=round(len/8); for i:=0 to xuhuan do begin for j:=0 to 7 do begin if ((i*8+j+1)) then //关键这一步,网上...
很简单的一个例子,用delphi2010编写的,网上有的例子会出现网上的教程是Pchar(IPAddress) 这样会提示 Incompatible types: 'Char' and 'AnsiChar' 处理 解决办法1:参数格式不变,使用的时候麻烦一点。先把...
花费一整天修改支持中文,虽然不完美也可以用了. 如果有大神能改完美, 就修改下,谢谢!!! 主要是 修改string 到ansistring char 到ansichar, 判断双字节字符
function GBCht2Chs(GBStr: string): AnsiString; function GBChs2Cht(GBStr: string): AnsiString; implementation function GBCht2Chs(GBStr: string): AnsiString; {进行GBK繁体转简体} var Len: integer; ...
Delphi2007之前的API繁简转函数在Delphi2009版本出现后不能用,原因在于之前版本的String默认为AnsiString,而Delphi2007之后的String默认为WideString,同样,PChar指针也就为PAnsiString,所以调用Windows API函数...