제 3 자 라이브러리로 전달하기 위해 UTF8 문자열을 생성해야하는데 올바른 체조를 파악하는 데 문제가 있습니다 ... 또한 최악의 경우를 대비하여 C++ Builder 6 및 모든 기능을 사용하여 붙어 있습니다. 예제 CBuilder6에서 명시 적으로 지원하지 않는 std :: string 사용에 대한 대화를 찾았습니다. STL을 사용하지 않고 이것을 달성하고 싶습니다.UTF8 변환
여기까지 제 코드는 지금까지 작동하지 않는 것 같습니다.
wchar_t *SS1;
char *SS2;
SS1 = L"select * from mnemonics;";
int strsize = WideCharToMultiByte(CP_UTF8, 0, SS1, wcslen(SS1), NULL, 0, NULL, NULL);
SS2 = new char[strsize+1];
WideCharToMultiByte(CP_UTF8, 0, SS1, wcslen(SS1), SS2, strsize, NULL, NULL);
SS2를 매개 변수로 전달하면 타사 라이브러리 쵸크가 발생합니다. 필자는 Microsoft의 WideCharToMultiByte를 사용하는 Windows 플랫폼을 사용하고 있지만이 함수 호출은 필요하지 않습니다.이 코드는 Linux에서도 임베디드 플랫폼에서도 컴파일해야하므로이 브릿지를 건너겠습니다. .
현재로서는 STL을 사용하지 않고 wchar_t 또는 char을 UTF8로 인코딩 된 문자열로 변환 할 수 있어야합니다. 임베디드 플랫폼에 STL을 사용하지 않을 것입니다.
감사합니다. 그런
내가 찾던 정확히 무엇인지. CBuilder6의 경우 #define을 추가해야만 작동합니다. CBuilder6는 _stricmp (stricmp로 알았습니다)에 대해 알지 못했고 sprintf로 고정 된 _itoa에 대해 알지 못했습니다 ... Nice! 고맙습니다! – Eric