SetFileApisToOEM 関数 (fileapi.h)

プロセスのファイル I/O 関数で、OEM 文字セット コード ページを使用させます。 この関数は、8 ビットコンソールの入出力操作に役立ちます。

構文

void SetFileApisToOEM();

戻り値

なし

解説

コード ページが SetFileApisToOEM によって設定されているファイル I/O 関数は、ファイル名を受け入れるか返す KERNEL32.DLL によってエクスポートされる関数です。 SetFileApisToOEM は 、スレッドごとまたはコンピューターごとではなく、プロセスごとにコード ページを設定します。

SetFileApisToOEM 関数は SetFileApisToANSI 関数によって補完され、同じファイル I/O 関数のセットで ANSI 文字セット コード ページが使用されます。

8 ビット コンソール関数では、既定で OEM コード ページが使用されます。 その他のすべての関数では、既定で ANSI コード ページが使用されます。 つまり、コンソール関数によって返される文字列は、他の関数によって正しく処理されない可能性があり、その逆も同様です。 たとえば、 FindFirstFileA 関数が特定の拡張 ANSI 文字を含む文字列を返し、8 ビット コンソール関数が OEM コード ページを使用するように設定されている場合、 WriteConsoleA 関数は文字列を正しく表示しません。

AreFileApisANSI 関数を使用して、ファイル I/O 関数のセットが現在使用しているコード ページを決定します。 SetConsoleCP 関数と SetConsoleOutputCP 関数を使用して、8 ビット コンソール関数のコード ページを設定します。

コード ページの非互換性の問題を解決するには、コンソール アプリケーションに Unicode を使用することをお勧めします。 Unicode を使用するコンソール アプリケーションは、8 ビットコンソール関数を使用するアプリケーションよりもはるかに汎用性があります。 そのソリューションを禁止すると、コンソール アプリケーションは SetFileApisToOEM 関数を呼び出して、ファイル I/O 関数のセットで ANSI 文字セット文字列ではなく OEM 文字セット文字列を使用させることができます。 SetFileApisToANSI 関数を使用して、これらの関数を ANSI コード ページに戻します。

コマンド ラインを処理する場合、コンソール アプリケーションは Unicode 形式でコマンド ラインを取得し、関連する文字から OEM への関数を使用して OEM 形式に変換する必要があります。 また、コマンド ライン メイン関数の argv パラメーターの配列には、この場合の ANSI 文字セット文字列が含まれていることにも注意してください。

Windows 8 と Windows Server 2012 では、この関数は、次のテクノロジによってサポートされています。

テクノロジ サポートされています
サーバー メッセージ ブロック (SMB) 3.0 プロトコル はい
SMB 3.0 Transparent Failover (TFO) はい
スケールアウト ファイル共有 (SO) を使う SMB 3.0 はい
クラスターの共有ボリューム ファイル システム (CsvFS) はい
Resilient File System (ReFS) はい

要件

   
サポートされている最小のクライアント Windows XP (デスクトップ アプリのみ)
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
対象プラットフォーム Windows
ヘッダー fileapi.h (Windows.h、WinBase.h を含む)
Library Kernel32.lib
[DLL] Kernel32.dll

関連項目

AreFileApisANSI

File Management 関数

FindFirstFileA

SetConsoleCP

SetConsoleOutputCP

SetFileApisToANSI

WriteConsoleA