は標準出力デバイスからハンドルを(hStdOutここ)を考えると、私は、コンソールアプリケーションから任意の文字列の書き込みには、以下の2つの手順を使用します。コンソール画面のバッファにUnicode文字列を書き込むにはどうすればいいですか?
抜粋:
procedure Send(const s: string);
var
len: cardinal;
begin
len:=Length(s);
WriteFile(hStdOut,s[1],len,len,nil);
end;
procedure SendLn(const s: string);
begin
Send(s + #13#10);
end;
を私のトラブル:
この文は、私が期待どおりの文字列を正しく表示しません:
SendLn('The harder they come...');
私の質問:
はWriteFile
の「WideStringの」オーバーロードがありますか私は、コンソールスクリーンバッファにアクセスする他のUnicode対応機能を検討する必要がありますか?
ありがとうございます。長さの問題は、ByteLengthを使用して解決されていますが、私はまだ問題があります。文字列のすべての文字は、追加のスペース文字で表示されます。 – menjaraz
@menjarazはい、あなたの標準出力デバイスがANSIを期待しているからです。答えの2番目のコードを試してみてください。どのタイプの出力デバイスについて作業しているかについての情報はありますか? –
あなたはそうです、それはANSIを期待しています。 – menjaraz