2012-12-18 2 views
0

델파이 6에서 XE2로 업그레이드해야합니다.델파이 : 6에서 XE2로 업그레이드 - TStringList

많은 정보를 수집했지만 그 중 하나는 분명하지 않습니다.

우리는 String을 사용하고 있습니다 - XE에서 AnsiString은 무엇입니까?

우리가 알고있는 것처럼 유니 코드 변환의 부작용을 피하기 위해 우리 라이브러리의 모든 (P) Ansi [String/Char]를 대체해야하며 프로젝트를 컴파일 할 수 있어야합니다.

그것은 괜찮습니다, 그러나 우리는 또한 TStringList를를 사용하고 난 어떤 TAnsiStringList 클래스는 단순히 변경하는 것으로 확인하지 않습니다 ... ;-)

는이에 대해 무엇을 알 수 있습니까? 이로 인해 문제가 발생할 수 있습니까? 아니면이 클래스에는 문자열을 유지할 수있는 옵션이 있습니까?

(좋아, 3 개 질문 것으로 보인다, 그러나 그것은 하나의 단지입니다) O와 같은 이상한 문자가 무엇을

프로그램/OS 언어는 헝가리어있다가, 캐릭터 세트가 WIN-1250, 및 U ... 당신의 모든 정보, 링크에 대한

감사 등

답변

2

모두 1) 1 - 왜 유 AnsiStringList 사용하는 것이 아니라 유니 코드 인식 TStringList를 모든 프로젝트를 변환해야합니까? 가능한 대안을 제안하는 구체적인 이유가 있어야합니다.

유니 코드는 windows-1250, windows-1251 등의 상위 집합입니다. 보통 로케일 특정 문자열은 무손실로 유니 코드로 변환됩니다. IT는 AnsiString의 유니 코드와 반대이며, 데이터가 느슨 할 수 있습니다. 명시 적 또는 암시 적 ("char-var in char-set"과 같은 AnsiChar 감소)

DLL에서와 같이 형식이 안전하지 않은 API가있을 수 있습니다. 컴파일러는 PChar 또는 PAnsiChar를 전달했는지 확인할 수는 없지만 어쨌든 객체를 통과시키지 않으면 DLL에 TString이 있습니다. 거기에는 BPL이 있습니다.

그래서 당신은 아마 당신이

3) 당신이 사용할 수있는 제다이 코드 라이브러리에서 TJclAnsiStringList 걸릴 수 있습니다)

2 TAnsiStringList

필요하지 않습니다 XE2 재고 TList<AnsiString> 유형

관련 문제