关于 char * 与 AnsiString 的DLL函数返回值!
sczyq 2007-04-21 09:09:49 从一个DLL中调用另一个DLL的字符串返回值,
两个DLL均用C++Builder 2006编写。
==============================================
采用 char * 返回时,
AnsiString S
char * __stdcall ReadString(void)
{
S = "12345";
return S.c_str();
}
调用后,
AnsiString SS = ReadString(); // SS == "1234"
==============================================
采用 AnsiString 返回时,
AnsiString S
AnsiString __stdcall ReadString(void)
{
S = "12345";
return S;
}
调用后,
AnsiString SS = ReadString(); // SS == "12345"
==============================================
反而采用AnsiString 返回的正确,这是为何?