怎么用C++ BUILDER实现繁体转简体

如何用C++ BUILDER实现繁体转简体?
网上搜了一堆,没看见用C++ BUILDER成功解决的呀。BCB从ORACLE数据库里取出的是繁体,如何将数据转换为简体呢?程序运行环境为简体中文XP。感谢!

------解决方案--------------------
C/C++ code

//.h
public:        // User declarations
    __fastcall TForm1(TComponent* Owner);
    void __fastcall GBK2GB(char *szBuf);
};

//---------------------------------------
//.cpp

__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
    Edit1->Text = "中華人民共和國";
}
//---------------------------------------
// GBK码转GB2312码
// 中華人民共和國 --> *
void __fastcall TForm1::GBK2GB(char *szBuf)
{
    if(!strcmp(szBuf, ""))
        return;
    int nStrLen = strlen(szBuf);
    WORD wLCID = MAKELCID(MAKELANGID
            (LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED), SORT_CHINESE_BIG5);
    int nReturn = LCMapString(wLCID, LCMAP_SIMPLIFIED_CHINESE, szBuf, nStrLen, NULL, 0);
    if(!nReturn)
        return;
    char *pcBuf = new char[nReturn + 1];
    try
    {
        wLCID = MAKELCID(MAKELANGID
                (LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED), SORT_CHINESE_BIG5);
        LCMapString(wLCID, LCMAP_SIMPLIFIED_CHINESE, szBuf, nReturn, pcBuf, nReturn + 1);
        strncpy(szBuf, pcBuf, nReturn);
    }
    __finally
    {
        delete []pcBuf;
    }
}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    char szBuf[255];
    AnsiString Str  =   Edit1->Text ;
    strcpy(szBuf,Str.c_str());
    GBK2GB(szBuf);
    Edit2->Text = AnsiString(szBuf);
}
//---------------------------------------

------解决方案--------------------
出处
http://www.ccrun.com/article.asp?i=634&d=04g63p
------解决方案--------------------
我以前用的互转的函数,供参考:

//----------------------------
//函数输入Big5字符,返回Gb简体字符
//----------------------------
AnsiString __fastcall Big2Gb(AnsiString sBig) 
{
char* pszBig5=NULL; //Big5编码的字符 
wchar_t* wszUnicode=NULL; //Unicode编码的字符 
char* pszGbt=NULL; //Gb编码的繁体字符 
char* pszGbs=NULL; //Gb编码的简体字符
AnsiString sGb; //返回的字符串 
int iLen=0; //需要转换的字符数 
 
pszBig5=sBig.c_str(); //读入需要转换的字符参数 
 
//计算转换的字符数 
iLen=MultiByteToWideChar (950, 0, pszBig5, -1, NULL,0) ; 
//给wszUnicode分配内存 
wszUnicode=new wchar_t[iLen+1]; 
//转换Big5码到Unicode码,使用了API函数MultiByteToWideChar 
MultiByteToWideChar (950, 0, pszBig5, -1, wszUnicode,iLen); 

//计算转换的字符数 
iLen=WideCharToMultiByte (936, 0, (PWSTR) wszUnicode, -1, NULL,0, NULL, NULL) ; 
//给pszGbt分配内存 
pszGbt=new char[iLen+1]; 
//给pszGbs分配内存 
pszGbs=new char[iLen+1]; 
//转换Unicode码到Gb码繁体,使用API函数WideCharToMultiByte 
WideCharToMultiByte (936, 0, (PWSTR) wszUnicode, -1, pszGbt,iLen, NULL, NULL) ; 

//转换Gb码繁体到Gb码简体,使用API函数LCMapString 
LCMapString(0x0804,LCMAP_SIMPLIFIED_CHINESE, pszGbt, -1, pszGbs, iLen);
 
//返回Gb码简体字符 
sGb=pszGbs; 
 
//释放内存 
delete [] wszUnicode; 
delete [] pszGbt; 
delete [] pszGbs; 
 
return sGb;
}


//---------------------------------------
//函数输入Gb字符,返回Big5字符
//---------------------------------------
AnsiString __fastcall Gb2Big(AnsiString sGb)
{
char* pszGbt=NULL; //Gb编码的繁体字符
char* pszGbs=NULL; //Gb编码的简体字符
wchar_t* wszUnicode=NULL; //Unicode编码的字符
char* pszBig5=NULL; //Big5编码的字符
AnsiString sBig5; //返回的字符串
int iLen=0; //需要转换的字符数