请教:PChar支持哪些操作!
解决方案 »
- 高分求助,感觉有点无奈。
- 用delphi难到就不能华几何图形吗
- 如何将相对路径转换为绝对路径
- fastreport问题,高手帮下忙呀。。。
- 请问:t:=dm01.table_item.Locate('item','00000015', [lopartialkey] )为什么总报错?
- 在DELPHI中如何用控件数组,也就是label(i).caption
- 关于odbc的问题,大家一定要帮忙。高分重谢
- 如何用程序来实现IIS虚拟目录的增删改?
- 高手请进》》》!!!
- 怎样使用DataSetField建立主从关系?
- 怎样用代码使用一窗口最大化?
- listview中,每个subitem集成一个combobox,如何控制这些combobox的显示位置?
API都只能是PCHAR的PCHAR可以与String相互Convert的http://lysoft.7u7.net
所以在调用API函数时,都用PCHAR来做强制转换,其实PCHAR可以理解为一个空的无类型的指针,有点像 array of char 或者 string
但是你开始的时候要初始化这个变量,
p:Pchar;
buf: array[0..9]of char; new(p);
buf:='1234567890';
p:=buf;
功能 返回将指针字符串Source复制到指针字符串Dest中的结尾
说明 可以连接指针字符串
参考
例子
///////Begin StrECopy
procedure TForm1.Button1Click(Sender: TObject);
var
vBuffer: array[0..255] of Char;
begin
StrECopy(StrECopy(vBuffer, PChar(Edit1.Text)), PChar(Edit2.Text));
Edit3.Text := vBuffer;
end;
///////End StrECopy
function Add(var pOld:PChar; const pAdd:PChar):PChar;
var
i,j:Integer;
pTmp, pTmp2: PChar;
begin
// 略去各种判断
i := Length(pOld);
j := Length(pAdd);
GetMem(pTmp, i + j + 1);
StrCopy(pTmp, pOld);
pTmp2 = pTmp;
Inc(pTmp, i);
StrCopy(pTmp2, pAdd); // 好像不支持 StrCopy(pTmp+i, pAdd);
FreeMem(pOld);
pOld := pTmp;
Result := pOld;
end;随手写 没什么优化之类的了。1. 它是一个指针 具有指针的基本性质 转换 移动等
2. 它是一个字符串指针 具有字符串的特性^_^ 也刚好是 概念上的继承 或者 说 组合。。
所以用函数代替。。