Q&A

  • 유니코드 -> ansi코드로....
밑에 질문을 올렸는데.. 아무도 답변이 없네요...

ccc : array [0..4096] of wideChar;
ddd : wideString;

이렇게 변수 정의 해서...

  emf_file.Read(ccc, emfr.nsize - (sizeof(TEMREXTTEXTOUT)));
  ddd:=ccc;

이렇게 했는데...
값이 깨지네요... 정말....
급한건데... 흑...
좀 도와주세요...
3  COMMENTS
  • Profile
    최용일 2004.02.12 02:48
    안녕하세요. 최용일입니다.

    유니코드=>안시코드는 걍 대입만 하시면 변환됩니다. 반대의 경우도 마찬가지구요...

    var
        AnsiS: string;
        WideS: WideString;
    begin
        WideS := 'Wide string...';
        AnsiS := WideS;
    end;

    EMF파일에 있는 글씨를 얻으실려는거 같은데... 아마 위치 계산하는게 잘못되지 않았을까 생각되네요...

    ^^ 항상 즐코하세요...

  • Profile
    2004.02.12 03:14
    흑... 위치 계산은 정말 제대로 했고요...
    영문에서는 아무 문제가 없습니다...
    한글만 깨지니까 문제지요...

    지금은... 혹시나.. 윈도우에서 바이트가 바뀌는 문제...
    예를 들면.. 바이너리 데이터를
    비주얼 C++ 에서 그냥 데이터를 읽는 것과..
    C++ 빌더에서 읽는 것과 다른것
    즉 바이트 앞뒤가 바뀌는 문제.. 그것이 아닐까 생각 하는데..
    델파이에서는 어디서 세팅 하는지 몰라서...
    C++ 빌더는 세팅이 되는데...
    흑...



  • Profile
    최용일 2004.02.12 03:54
    안녕하세요. 최용일입니다.

    안시에서 유니코드로는 100%호환이 되지만 유니에서 안시로는 100%호환이 안됩니다. 이점 참고 하시구요... 물론 영문은 100%호환이 되구요...

    EMREXTTEXTOUT 의 Options에서 ETO_GLYPH_INDEX가 들어가 있는지 확인해보세요. 이건 유니코드에서 그림으로된 문자들인데. 안시문자열과 호환되지 않습니다. 윈도2000, 윈도XP등에서만 지원되는 겁니다. 참고하세요...

    ^^ 항상 즐코하세요...