OutputDebugStringA 関数 (debugapi.h)
文字列を表示するためにデバッガーに送信します。
構文
void OutputDebugStringA(
[in, optional] LPCSTR lpOutputString
);
パラメーター
[in, optional] lpOutputString
表示される null で終わる文字列。
戻り値
なし
解説
重要
この関数を使用するには、アプリケーションに Windows.h ヘッダーを含める必要があります (debugapi.h ではありません)。
以前は、オペレーティング システムは OutputDebugStringW を介して Unicode 文字列を返しませんでした (代わりに ASCII 文字列が返されました)。 OutputDebugStringW が Unicode 文字列を強制的に返すには、デバッガーで WaitForDebugEventEx 関数を呼び出して新しい動作をオプトインする必要があります。 このようにして、オペレーティング システムは、デバッガーが Unicode をサポートし、特に Unicode 文字列の受信を選択していることを認識します。
アプリケーションにデバッガーが存在せず、フィルター マスクで許可されている場合は、システム デバッガーに文字列が表示されます。 文字列を表示するために、この関数は DbgPrint 関数を呼び出します。 Windows Vista より前のバージョンでは、コンテンツはシステム デバッガーによってフィルター処理されませんでした。
アプリケーションにデバッガーが存在せず、システム デバッガーがアクティブでない場合、 OutputDebugString は何も実行しません。
OutputDebugStringW は 、現在のシステム ロケール情報に基づいて指定された文字列を変換し、それを OutputDebugStringA に渡して表示します。 その結果、一部の Unicode 文字が正しく表示されない場合があります。
アプリケーションは非常に最小限のデバッグ出力を送信し、ユーザーがその使用を有効または無効にする方法を提供する必要があります。 トレースの詳細については、「 イベント トレース 」を参照してください。
Visual Studio は、リビジョン履歴全体でこれらの文字列の表示を処理する方法を変更しました。 バージョンでこれを処理する方法の詳細については、Visual Studio のドキュメントを参照してください。
debugapi.h ヘッダーは、Unicode プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして OutputDebugString を定義します。 エンコードに依存しないエイリアスをエンコードニュートラルでないコードと組み合わせて使用すると、不一致やコンパイルまたはランタイム エラーが発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。
要件
サポートされている最小のクライアント | Windows XP [デスクトップ アプリ | UWP アプリ] |
サポートされている最小のサーバー | Windows Server 2003 [デスクトップ アプリのみ | UWP アプリ] |
対象プラットフォーム | Windows |
ヘッダー | debugapi.h (Windows.h を含む) |
Library | Kernel32.lib |
[DLL] | Kernel32.dll |