W wiseyao Unregistered / Unconfirmed GUEST, unregistred user! 2005-08-16 #3 没问题.所有类型包括自定义类型都可以作为返回值和参数,但指针返回后要在自己释放.
X xianguo Unregistered / Unconfirmed GUEST, unregistred user! 2005-08-16 #4 delphi的例子中就有很多是AnsiString类型,例如 function LeftStr(const AText: AnsiString; const ACount: Integer): AnsiString; overload;
delphi的例子中就有很多是AnsiString类型,例如 function LeftStr(const AText: AnsiString; const ACount: Integer): AnsiString; overload;
D dxwwgr Unregistered / Unconfirmed GUEST, unregistred user! 2005-08-16 #5 我查资料发现,AnsiString 类型用作参数的例子很多,但作为返回值的没看到,问wiseyao"指针返回后要在自己释放."这么做?谢谢
X xianguo Unregistered / Unconfirmed GUEST, unregistred user! 2005-08-16 #6 function LeftStr(const AText: AnsiString; const ACount: Integer): AnsiString; overload; 不就是的吗?
W wiseyao Unregistered / Unconfirmed GUEST, unregistred user! 2005-08-16 #7 比如有一个函数: function TForm1.GetAPChar: PChar; var pChar; begin GetMem(p,100); Result:=p; end; 调用如下: procedure TForm1.Button1Click(Sender: TObject); var pchar; begin p:=getapchar; StrPCopy(p,'hello,wiseyao'); ShowMessage(p); Dispose(p);//自己释放指针 end;
比如有一个函数: function TForm1.GetAPChar: PChar; var pChar; begin GetMem(p,100); Result:=p; end; 调用如下: procedure TForm1.Button1Click(Sender: TObject); var pchar; begin p:=getapchar; StrPCopy(p,'hello,wiseyao'); ShowMessage(p); Dispose(p);//自己释放指针 end;
D dxwwgr Unregistered / Unconfirmed GUEST, unregistred user! 2005-08-16 #9 谢谢你们几位,主要是我只会C++ BUILDER ,所以看不懂你们写的程序,能用C++ BUILDER 写一个吗?
W wiseyao Unregistered / Unconfirmed GUEST, unregistred user! 2005-08-16 #10 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;//自己释放指针 }
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;//自己释放指针 }
D dxwwgr Unregistered / Unconfirmed GUEST, unregistred user! 2005-08-16 #11 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 );
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 );