高版本BUILDER编译环境下,可不可以不使用TCHAR,让函数返回char

高版本BUILDER编译环境下,能否不使用TCHAR,让函数返回char *

char *test(char *output)
{
   String a = "haha";
   strcpy(output,a.c_str());
   return output;
}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
   char *b = new char[10];
   ShowMessage(test(b));
}


在高版本的BUILDER环境下编译不通过,需要改成以下代码才能编译成功

#include<tchar.h>
TCHAR *test(TCHAR *output)
{
   String a = "haha";
   _tcscpy(output,a.c_str());
   return output;
}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
   TCHAR *b = new TCHAR[10];
   ShowMessage(test(b));
}

能否做到不使用TCHAR,让函数返回char *?
------解决思路----------------------
用 AnsiString 就行了。低版本 CBuilder 中,String 默认是映射为 AnsiString,但是 2009+ 以后,String 就映射成 UnicodeString 了,所以,如果需要 String 返回 char * 数据,就显式使用 AnsiString,如:
char *test(char *output)
{
   AnsiString a = "haha";
   strcpy(output,a.c_str());
   return output;
}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
   char *b = new char[10];
   ShowMessage(test(b));
}