变量名 | 类 型 | 静态 | 数组 | 备 注 |
wstr | 字节集 | | |
buff | 文本型 | | |
pBuff | 整数型 | | |
len | 整数型 | | |
i | 整数型 | | |
wstr =
编码_Ansi到Unicode (string
)len =
lstrlenW_字节集 (wstr
)buff =
取空白文本 (len × 6
)pBuff =
PtrStr (buff
)
变量循环首 (0, len - 1, 1, i
)
wsprintfA (pBuff + i × 6,
“\u%.2x%.2x”, wstr
[i × 2 + 2
], wstr
[i × 2 + 1
])
变量循环尾 ()返回 (buff
)变量名 | 类 型 | 静态 | 数组 | 备 注 |
buff | 字节集 | | |
pBuff | 整数型 | | |
len | 整数型 | | |
i | 整数型 | | |
format | 字节集 | | |
len =
lstrlenW_字节集 (string
)buff =
取空白字节集 (len × 2 × 6 + 2
)pBuff =
PtrBin (buff
)format =
{ 92, 0, 117, 0, 37, 0, 46, 0, 50, 0, 120, 0, 37, 0, 46, 0, 50, 0, 120, 0, 0, 0
}
变量循环首 (0, len - 1, 1, i
)
wsprintfW (pBuff + i × 12, format, string
[i × 2 + 2
], string
[i × 2 + 1
])
变量循环尾 ()返回 (buff
)变量名 | 类 型 | 静态 | 数组 | 备 注 |
pos | 整数型 | | |
Ox | 字节集 | | |
buffer | 字节集 | | |
pBuff | 整数型 | | |
char1 | 整数型 | | |
char2 | 整数型 | | |
ret | 字节集 | | |
pRet | 整数型 | | |
Len | 整数型 | | |
位置 | 整数型 | | |
ret =
编码_Ansi到Unicode (usc2Str
)pRet =
PtrBin (ret
)pos =
StrStrW_bin2 (pRet,
{ 92, 0, 0, 0
})
如果真 (pos = 0
)
返回 (usc2Str
)
buffer =
取空白字节集 (10
)pBuff =
PtrBin (buffer
)Ox =
{ 48, 0, 120, 0
} RtlMoveMemory_整数型 (pBuff,
PtrBin (Ox
), 4
)Len =
lstrlenW (pRet
) × 2
判断循环首 (pos ≠ 0
)
RtlMoveMemory_整数型 (pBuff + 4, pos + 8, 4
)
StrToIntEx_ptr (pBuff, 1, char1
)
RtlMoveMemory_整数型 (pBuff + 4, pos + 4, 4
)
StrToIntEx_ptr (pBuff, 1, char2
)
如果 (char1 = 0
且 char2 = 0
)
RtlMoveMemory_整数型 (pos, pos + 12, pRet + Len - pos - 12
)
RtlZeroMemory (pRet + Len - 12, 12
)

Len = Len - 12


pos = pos - 2

RtlMoveMemory_整数型 (pos,
PtrInt (char1
), 1
)
RtlMoveMemory_整数型 (pos + 1,
PtrInt (char2
), 1
)
RtlMoveMemory_整数型 (pos + 2, pos + 12, pRet + Len - pos - 12
)
RtlZeroMemory (pRet + Len - 12 + 2, 12 - 2
)

Len = Len - 10



pos =
StrStrW_bin2 (pos + 2,
{ 92, 0, 0, 0
})
判断循环尾 ()返回 (编码_Unicode到Ansi (ret
))
变量名 | 类 型 | 静态 | 数组 | 备 注 |
pos | 整数型 | | |
Ox | 字节集 | | |
buffer | 字节集 | | |
pBuff | 整数型 | | |
char1 | 整数型 | | |
char2 | 整数型 | | |
ret | 字节集 | | |
pRet | 整数型 | | |
Len | 整数型 | | |
位置 | 整数型 | | |
ret = usc2Str
pRet =
PtrBin (ret
)pos =
StrStrW_bin2 (pRet,
{ 92, 0, 0, 0
})
如果真 (pos = 0
)
返回 (usc2Str
)buffer = 取空白字节集 (10)pBuff =
PtrBin (buffer
)Ox =
{ 48, 0, 120, 0
} RtlMoveMemory_整数型 (pBuff,
PtrBin (Ox
), 4
)Len =
lstrlenW (pRet
) × 2
判断循环首 (pos ≠ 0
)
RtlMoveMemory_整数型 (pBuff + 4, pos + 8, 4
)
StrToIntEx_ptr (pBuff, 1, char1
)
RtlMoveMemory_整数型 (pBuff + 4, pos + 4, 4
)
StrToIntEx_ptr (pBuff, 1, char2
)
如果 (char1 = 0
且 char2 = 0
)
RtlMoveMemory_整数型 (pos, pos + 12, pRet + Len - pos - 12
)
RtlZeroMemory (pRet + Len - 12, 12
)

Len = Len - 12


pos = pos - 2

RtlMoveMemory_整数型 (pos,
PtrInt (char1
), 1
)
RtlMoveMemory_整数型 (pos + 1,
PtrInt (char2
), 1
)
RtlMoveMemory_整数型 (pos + 2, pos + 12, pRet + Len - pos - 12
)
RtlZeroMemory (pRet + Len - 12 + 2, 12 - 2
)

Len = Len - 10



pos =
StrStrW_bin2 (pos + 2,
{ 92, 0, 0, 0
})
判断循环尾 ()返回 (ret
)