#define _countof(array) (sizeof(array) / sizeof(array[0])) void __fastcall TForm1::btn1Click(TObject *Sender) { wchar_t buf[] = L"中国人民解放军"; WideString ws = "中国人民解放军"; WCHAR* buf2 = ws.c_bstr(); int a = _countof(buf); int b = sizeof(buf); } //--------------------------------------------------------------------------- void __fastcall TForm1::btn2Click(TObject *Sender) { char* buffer = "中国人民解放军"; int cbMultiByte = strlen(buffer) + 1; wchar_t wbuffer[20] = {0}; int cchWideChar = cbMultiByte; MultiByteToWideChar( CP_ACP, MB_PRECOMPOSED, buffer, strlen(buffer) + 1, wbuffer, strlen(buffer) + 1 ); ShowMessage(wbuffer); } //--------------------------------------------------------------------------- void __fastcall TForm1::btn3Click(TObject *Sender) { wchar_t* wbuffer = L"中国人民志愿军"; int cchWideChar = wcslen(wbuffer) + 1; char buffer[20] = {0}; int cbMultiByte = cchWideChar * sizeof(wchar_t) + 1; WideCharToMultiByte(CP_ACP, 0, wbuffer, cchWideChar, buffer, cbMultiByte, NULL, NULL); DWORD err = GetLastError(); AnsiString errMsg = SysErrorMessage(err); ShowMessage(buffer); } //--------------------------------------------------------------------------- void __fastcall TForm1::btn4Click(TObject *Sender) { wchar_t* wbuffer = L"中国人民解放军第301医院"; PVOID pvBuffer = wbuffer; int cb = (wcslen(wbuffer) + 1) * sizeof(wchar_t); BOOL bRet = IsTextUnicode(pvBuffer , cb , NULL); char* buffer = "中国人民解放军第309医院"; pvBuffer = buffer; cb = (strlen(buffer) + 1) * sizeof(char); bRet = IsTextUnicode(pvBuffer , cb , NULL); }