2006년 08월 31일
ManagedAudiere의 한글문제
기존 StringConverter 소스가 c++의 char 하나를 c#의 char 하나로 복사해버렸기 때문에.. 파일 주소에 한글이 들어가면 읽지 못하는 상황이 일어났다.. 그래서 멀티바이트를 처리하도록 수정했다.. 밑이 그 소스..
class StringConverter
{
public:
static std::string ToStd(System::String^ a)
{
std::string ret = "";
array<unsigned char>^ bytes = Encoding::Default->GetBytes(a);
for (int i = 0; i < bytes->Length; i++)
{
ret += bytes[i];
}
return ret;
}
static System::String^ ToNet(std::string a)
{
List<unsigned char>^ bytes = gcnew List<unsigned char>();
for (unsigned int i = 0; i < a.length(); i++)
{
bytes->Add(a[i]);
}
String^ ret = Encoding::Default->GetString(bytes->ToArray());
return ret;
}
};
참고로 audiere는 lgpl의 오디오 라이브러리이고, ManagedAudiere는 닷넷용 래핑 라이브러리[?]이다.
class StringConverter
{
public:
static std::string ToStd(System::String^ a)
{
std::string ret = "";
array<unsigned char>^ bytes = Encoding::Default->GetBytes(a);
for (int i = 0; i < bytes->Length; i++)
{
ret += bytes[i];
}
return ret;
}
static System::String^ ToNet(std::string a)
{
List<unsigned char>^ bytes = gcnew List<unsigned char>();
for (unsigned int i = 0; i < a.length(); i++)
{
bytes->Add(a[i]);
}
String^ ret = Encoding::Default->GetString(bytes->ToArray());
return ret;
}
};
참고로 audiere는 lgpl의 오디오 라이브러리이고, ManagedAudiere는 닷넷용 래핑 라이브러리[?]이다.
# by | 2006/08/31 17:52 | .NET | 트랙백 | 덧글(2)



☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]