3

BytesWideChar 두 개 결합 할 수 있습니까? 그렇다면 어떻게됩니까?
예를 들어, 이진 문자 "ē"는 00010011 = 1900000001 = 1 또는 275입니다.두 바이트를 WideChar에 결합

var 
    WChar: WideChar; 
begin 
    WChar := WideChar(275); // Result is "ē" 


var 
    B1, B2: Byte; 
    WChar: WideChar; 
begin 
    B1 := 19; 
    B2 := 1; 
    WChar := CombineBytesToWideChar(B1, B2); // ??? 

어떻게 델파이 2 바이트에서 WideChar는 어떻게해야합니까?

답변

8
WChar := WideChar(MakeWord(B1, B2)); 
+0

내가 받아 답변하는 모른다 : D –

+0

아를 나는 이것을 받아 들일 것 : – Lloyd

+0

좋은, 더 간결, MakeWord에 대해 잊어 버렸습니다. – Lloyd

2

당신은 유형 캐스트를 생성 할 수 있어야한다 :

type 
    DoubleByte = packed record 
    B1: Byte; 
    B2: Byte; 
    end; 

var 
    DB: DoubleByte; 
    WC: WideChar; 
begin 
    DB.B1 := 19; 
    DB.B2 := 1; 

    WC = WideChar(DB); 
end; 

대신 Move()를 사용하여 간단하게 메모리를 복사 할 수 있습니다 캐스트를 실패.