Poco::Path
와 작업 매우 흥미로운 오류가 발견되었습니다. (Windows에서)입니다Poco :: Path는 const wchar_t *로 컴파일되지만 예기치 않게 작동합니다.
#include <iostream>
#include <string>
#include <Poco/Path.h>
int main()
{
std::wstring a_path = L"c:\\temp";
//Poco::Path from_wstring(a_path); // ERROR: fails to compile, expected
Poco::Path from_wchar_t(a_path.c_str()); // compiles... unexpected
std::cout << from_wchar_t.toString() << std::endl;
return 0;
}
그러나 위의 프로그램의 출력 :
C :
\ 다음 코드를 참조하십시오 : \ temp대신 예상의
Poco::Path
설명서를 검토 한 결과 (즉, 첫 번째 경로가 실패한 이유)이나 const wchar_t*
(예상치 : std::string
및 const char*
(모두 UTF-8))을 예상하는 생성자가 없습니다.
const wchar_t*
으로 컴파일하는 이유와 예기치 않은 출력 (잘못된 경로)이있는 이유는 무엇입니까?
: 해결에 관심있는 사람들을 위해
은, 지금은 UTF-8 변환에 UTF-16을 사용하고있는 모든 POCO 인터페이스를 (을 제외하고, 분명히, 변환 것들)는 UTF-8 문자열을 기대합니다. 필요한 경우 모든 전환을 내부적으로 처리합니다. – Alex