我从控制台应用程序(CMD)读取输入缓冲区,如下所示:
var
pBuffer : array [0..2400] of Widechar;
dBuffer : array [0..2400] of WideChar;
CReadBuffer : Cardinal;
BytesRead : Cardinal;
begin
// ....
ReadFile(BuffHandle, pBuffer[0], CReadBuffer, BytesRead, nil);
pBuffer[BytesRead] := #0; // Finish/End the WideString
OemToCharW(pBuffer, dBuffer);
MessageBoxW (0, dBuffer, '', 0);
// ....
end;
出于某种原因,我得到了奇怪的字符...... CMD 应该有 oem 字符集。我之前使用过 OEMtoCharA,效果很好。我做错了什么?
感谢帮助。
编辑:我使用 Delphi7