抢分啦,AnsiString 类型能作为函数的返回值和函数的参数吗? ( 积分: 10 )

  • 主题发起人 主题发起人 dxwwgr
  • 开始时间 开始时间
D

dxwwgr

Unregistered / Unconfirmed
GUEST, unregistred user!
我感觉是语法能通过,但运行有问题。是否?
 
我感觉是语法能通过,但运行有问题。是否?
 
没问题.所有类型包括自定义类型都可以作为返回值和参数,但指针返回后要在自己释放.
 
delphi的例子中就有很多是AnsiString类型,例如
function LeftStr(const AText: AnsiString;
const ACount: Integer): AnsiString;
overload;
 
我查资料发现,AnsiString 类型用作参数的例子很多,但作为返回值的没看到,问wiseyao"指针返回后要在自己释放."这么做?谢谢
 
function LeftStr(const AText: AnsiString;
const ACount: Integer): AnsiString;
overload;
不就是的吗?
 
比如有一个函数:
function TForm1.GetAPChar: PChar;
var
p:PChar;
begin
GetMem(p,100);
Result:=p;
end;

调用如下:
procedure TForm1.Button1Click(Sender: TObject);
var
p:pchar;
begin
p:=getapchar;
StrPCopy(p,'hello,wiseyao');
ShowMessage(p);
Dispose(p);//自己释放指针
end;
 
肯定可以的
 
谢谢你们几位,主要是我只会C++ BUILDER ,所以看不懂你们写的程序,能用C++ BUILDER 写一个吗?
 
C++Builder版
比如有一个函数:
char* TForm1::GetAPChar
{
char * p=new char[100];
return p;
}
调用如下:
void TForm1::Button1Click(TObject* Sender);
{
char * p;
p=GetAPChar();
strcpy(p,"hello,wiseyao");
ShowMessage(p);
delete []p;//自己释放指针
}
 
wiseyao 你好!函数的返回值是AnsiString类型不是指针类型的也需释放吗?如下
//----------返回是AnsiString的函数
AnsiString get_EditText_PHName( AnsiString sEditText )
{
AnsiString sPHID,sPHName;
int iPHID;
sPHID=Trim(sEditText);
if(sPHID.IsEmpty())
return " ";
iPHID=str_to_int(sPHID);
sPHName=get_PH_Name(iPHID);
//得到机器生产牌号的名称
return sPHName;
}
//-----调用的函数
AnsiString sPHName;
sPHName=get_EditText_PHName( sEditText );
 
后退
顶部