본문 바로가기

devlog

MultiByte Unicode UTF-8 String Conversion FMOD 사운드 로드 API중 System::createSound() 한글경로에서 로드안됨. 프로그램에서 이걸 사용하는데 만일 로드하려는 사운드에 한글 경로가 포함되면 createSound() 리턴값이 FMOD_ERR_FILE_NOTFOUND로 바뀌고 로드에 실패한다. 외부 라이브러리는 외국에서 만든것들이 많아서인지 utf-8 인코딩만 지원해서 한글경로는 변환이 필수. 위와같은 맥락으로 libVLC도 한글경로 지원 안되긴 마찬가지.. 사용한 변환코드는 아래와같다. int utf8ToNormalMultiByteStr(const char* utfstr, char* str){int size = MultiByteToWideChar( CP_UTF8, 0, utfstr, -1, 0, 0);vectorwbuffer(.. 더보기
LRC to SRT 변환 모듈 1. vlc에서 가사 출력에 사용될 자막의 타입 고르기- vlc가 lrc를 지원하지 않음- LRC 포맷은 텍스트를 기반으로 하고 있으며 자막 파일과 비슷하다.그래서 srt를 사용하기로 함. sami를 사용하지 않는 이유는 단순 가사 출력에 문자열을 꾸미기 위한 HTML과 CSS가 필요없기 때문. 2. srt 변환 프로그램 조사 or 개발- 공부 목적이 아닌경우에 이미 개발된걸 또 만드는건 시간낭비- 일단 lrc를 srt로 변환하는 프로그램 조사함- lrcsmiconv, LrcCon 등을 사용해본 결과 - simple LRC format만([mm:ss.xx]) 지원하고 Enhanced LRC format()을 지원하지 않음 - 영어만 되고, 한글 변환이 제대로 안됌 - time tag에서 [mm:ss.xx.. 더보기
[libvlc] vlcplayer subtitle font change. - 동영상 가사표시 개발 가능한지 조사- libvlc에 subtitle 형식으로 smi, srt 등등...을 지원한다. 자세한 지원목록은 wiki 참고(https://wiki.videolan.org/subtitles#Subtitles_support_in_VLC)- 샘플 테스트 결과 영어는 제대로 되지만, 한글 자막이 ㅁㅁㅁㅁ처럼 나오는 오류- 기본 글꼴이 Arial로 지정되어 있어 인코딩 옵션과 상관없이 한글을 표시하지 못함 - 한글 지원되는 글꼴로 변경해준다.- font를 지정할때는 .ttf를 빼고 이름만 적어준다 - 레지스트리 font 위치HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows NT\CurrentVersion\Fonts // init v.. 더보기
visual studio 2015 Routine Mappings (TCHAR) 원주소 - https://msdn.microsoft.com/en-us/library/tsbaswba.aspx TCHAR를 사용해서 멀티바이트 유니코드 캐릭터 셋 변경에 대응한다 루틴 매핑Visual Studio 2015다른 버전 게시 날짜: 2016년 4월Visual Studio 2017 에 대한 최신 설명서는 Visual Studio 2017 설명서를 참조하세요.제네릭 텍스트 루틴 매핑은 TCHAR.H에 정의되어 있습니다. _tccpy 및 _tclen은 MBCS 모델의 함수에 매핑됩니다. 이러한 함수는 완전성을 위해 SBCS 및 유니코드 모델의 매크로 또는 인라인 함수에 매핑됩니다. 제네릭 텍스트 루틴에 대한 자세한 내용은 SBCS, _MBCS 또는 _UNICODE 관련 루틴에 대한 도움말 항목을 참조.. 더보기
c++ 파일 입출력 경로명 한글일때 char * setlocae(int category, const char* locale);현재 로케일 또는 전체 프로그램 중 일부를 변경하여 현재 프로그램에서 사용할 로케일 정보를 설정한다. 파일 읽어서 무언가 할 때 경로명에 한글이 있으면 제대로 동작이 안되는데 이 때 사용한다. 파일을 읽기전에 을 include하고 setlocale(LC_ALL,"")을 한번 호출해준다. setlocale(LC_ALL, "Korean")도 동작은 한다만 setlocale(LC_ALL, "")는 컴퓨터 시스템 지역 설정을 따르게 한다. 더 궁금한 것은 레퍼런스를 참고하자http://www.cplusplus.com/reference/clocale/setlocale/ 더보기