현재 Mingw-w64 를 사용중입니다
gcc 에 _UNICODE 를 define 하면 TCHAR 와 _T(x) 모두 작동이 되는데
책에 같이 나와있는 UNICODE 로 실험해보면 아무것도 달라진게 없더군요
tchar.h 에 찾아봐도 _UNICODE 에 관한 매크로 정의만 있지
UNICODE 에 관한 정의는 없었습니다
gcc 에는 UNICODE 가 쓰이질 않나요?
제가 알기로는 _UNICODE 를 선언 하는 것은 windows 에서 local charset 과 windows 내부적으로 사용하는 utf16 사이를 제어하기 위함으로 알고 있습니다.
리눅스의 경우에는 raw code 로 작성이 되기 때문에 필요가 없습니다. 그래서 linux 에서는 그냥 string 자체를 제어하면 되고, 원하는 charset 으로 변경을 하고 싶다면 iconv library 를 이용하여 변경하면 됩니다.
windows 에서 mingw 사용하실때의 문제를 말씀하시는 거죠?
https://sourceforge.net/p/mingw-w64/wiki2/Unicode%20apps/ 서로 적용되는 헤더가 다릅니다. 위의 링크를 참조하시고, 컴파일 시에 -municode 옵션 넣는 것 잊지 마세요. 경험상, mingw에서는 -m 옵션으로 링크 잘 걸어주는게 중요할 때가 많았습니다. 구글에서 mingw UNICODE _UNICODE 로 검색하시면 더 자세한 글을 찾으실 수 있을 겁니다.
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
제가 알기로는 _UNICODE 를 선언 하는 것은
제가 알기로는 _UNICODE 를 선언 하는 것은 windows 에서 local charset 과 windows 내부적으로 사용하는 utf16 사이를 제어하기 위함으로 알고 있습니다.
리눅스의 경우에는 raw code 로 작성이 되기 때문에 필요가 없습니다. 그래서 linux 에서는 그냥 string 자체를 제어하면 되고, 원하는 charset 으로 변경을 하고 싶다면 iconv library 를 이용하여 변경하면 됩니다.
windows 에서 mingw 사용하실때의 문제를
windows 에서 mingw 사용하실때의 문제를 말씀하시는 거죠?
https://sourceforge.net/p/mingw-w64/wiki2/Unicode%20apps/
서로 적용되는 헤더가 다릅니다.
위의 링크를 참조하시고, 컴파일 시에 -municode 옵션 넣는 것 잊지 마세요.
경험상, mingw에서는 -m 옵션으로 링크 잘 걸어주는게 중요할 때가 많았습니다.
구글에서 mingw UNICODE _UNICODE 로 검색하시면 더 자세한 글을 찾으실 수 있을 겁니다.
댓글 달기