Jump to content
과거의 기술자료(읽기 전용): https://tech.devgear.co.kr ×
과거의 기술자료(읽기 전용): https://tech.devgear.co.kr
  • 0

AnsiCompare 에러 관련 문의


bol0001

질문

현재 10.3에서 win7 code build시 
E2316 'AnsiCompare' is not a member of 'UnicodeString'
에러가 발생합니다만 코드상 xxx.AnsiCompare를 사용하는 부분에 문제가 있는것 같은데 

어느부분을 체크하면 될까요?

Edited by bol0001
이 댓글 링크
다른 사이트에 공유하기

2 answers to this question

Recommended Posts

  • 0

에러 메시지로만 봐서는 이렇게 추측이 됩니다. AnsiCompare는 UnicodeString 타입의 멤버 함수가 아닙니다. 그런데 UnicodeString 타입 인스턴스에서 AnsiCompare를 사용하려고 시도하고 있는 상황인 것으로 보입니다.

원인으로는, 혹시 2009 버전 이전으로 델파이에서 작성된 코드를 델파이 10.3에서 사용하고 있는 것은 아닌가 생각됩니다.

참고로 델파이의 String은 2009 버전 이후부터 UnicodeString입니다. 즉, 2007 또는 그 이전 버전 코드에 있는 String은 2009 또는 그 이후 버전에서는  UnicodeString 타입으로 인식됩니다. 그러므로, AnsiCompare를 사용했다면, 2009 버전 이후에는 UnicodeString의 멤버 함수인 Compare로 바꿔주어야 합니다. 또한, 필요하다면, String을 AnsiString으로 명확히 작성하는 방법도 있습니다. 하지만, 이미 컴퓨터 환경 대부분이 유니코드를 기반으로 하므로, 유니코드와 그에 맞는 함수를 사용할 것을 권하고 싶습니다.    

델파이 문자열(과 유니코드 문자열)를 이해하고 코드를 수정하는 데 도움이 되는 자료는 다음과 같습니다.

  • 도서 (영문): Delphi Object Pascal Handbook"06장 All about strings" 에 잘 설명되어 있습니다.
    (참고로 이 영문 도서의 인쇄본은 유료이지만, PDF 버전은 현재로 무료로 다운로드 받을 수 있습니다. 또한 한국어 번역 작업 역시 진행되고 있습니다)
  • 기술백서 (한글): 델파이와 유니코드
이 댓글 링크
다른 사이트에 공유하기

이 토의에 참여하세요

지금 바로 의견을 남길 수 있습니다. 그리고 나서 가입해도 됩니다. 이미 회원이라면, 지금 로그인하고 본인 계정으로 의견을 남기세요.

Guest
이 질문에 답변하기...

×   서식있는 텍스트로 붙여넣기.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   이전에 작성한 콘텐츠가 복원되었습니다..   편집창 비우기

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

중요한 정보

이용약관 개인정보보호정책 이용규칙 이 사이트가 더 잘 작동하기 위해 방문자의 컴퓨터에 쿠키가 배치됩니다. 쿠키 설정 변경에서 원하는 설정을 할 수 있습니다. 변경하지 않으면 쿠키를 허용하는 것으로 이해합니다.