ユニバーサル Windows プラットフォーム アプリでサポートされていない CRT 関数CRT functions not supported in Universal Windows Platform apps

多くの C ランタイム (CRT) 関数はユニバーサル Windows プラットフォーム (UWP) アプリをビルドする時に使用できません。Many C runtime (CRT) functions are not available when you build Universal Windows Platform (UWP) apps. 場合によっては、回避策がある--たとえば、Windows ランタイムまたは Win32 Api を使用できます。In some cases, workarounds are available—-for example, you can use Windows Runtime or Win32 APIs. しかし、回避策が利用できない場合には、CRT 関数は禁止されています。CRT 関数に相当する機能やサポートする API を UWP アプリに使用できないためです。However, in other cases, CRT functions have been banned because the features that correspond to them or the supporting APIs are not applicable to UWP apps. Windows ランタイムのサポートされている別の方法を探すを参照してください。 UWP アプリでの Windows Api の代替します。To look for an alternative method that's supported for the Windows Runtime, see Alternatives to Windows APIs in UWP apps.

次の一覧には UWP アプリをビルドするときに使用できない CRT 関数と、その回避策があればそれを示しています。The following table lists the CRT functions that are not available when you build UWP apps, and indicates any workarounds that apply.

サポートされない CRT 関数Unsupported CRT Functions

_beep _sleep _seterrormode_beep _sleep _seterrormode これらの関数は以前のバージョンの CRT で廃止されています。These functions were obsolete in previous versions of the CRT. また、それに対応する Win32 API は UWP アプリでは使用できません。Also, the corresponding Win32 APIs are not available for UWP apps. 回避策はありません。No workaround.
chdir _chdrive getcwdchdir _chdrive getcwd これらの関数は廃止されているか、またはスレッド セーフではありません。These functions are obsolete or are not thread-safe. _chdir、_getcwd、関連する関数を使用します。Use _chdir, _getcwd and related functions.
_cgets _cgets_s _cgetws _cgetws_s _cprintf _cprintf_l _cprintf_p _cprintf_p_l _cprintf_s _cprintf_s_l _cputs _cputws _cscanf _cscanf_l _cscanf_s _cscanf_s_l _cwait _cwprintf _cwprintf_l _cwprintf_p _cwprintf_p_l _cwprintf_s _cwprintf_s_l _cwscanf _cwscanf_l _cwscanf_s _cwscanf_s_l _vcprintf _vcprintf_l _vcprintf_p _vcprintf_p_l _vcprintf_s _vcprintf_s_l _vcwprintf _vcwprintf_l _vcwprintf_p _vcwprintf_p_l _vcwprintf_s _vcwprintf_s_l _getch _getch_nolock _getche _getche_nolock _getwch _getwch_nolock _getwche _getwche_nolock _putch _putch_nolock _putwch _putwch_nolock _ungetch _ungetch_nolock _ungetwch _ungetwch_nolock _kbhit kbhit putch cgets cprintf cputs cscanf cwait getch getche ungetch_cgets _cgets_s _cgetws _cgetws_s _cprintf _cprintf_l _cprintf_p _cprintf_p_l _cprintf_s _cprintf_s_l _cputs _cputws _cscanf _cscanf_l _cscanf_s _cscanf_s_l _cwait _cwprintf _cwprintf_l _cwprintf_p _cwprintf_p_l _cwprintf_s _cwprintf_s_l _cwscanf _cwscanf_l _cwscanf_s _cwscanf_s_l _vcprintf _vcprintf_l _vcprintf_p _vcprintf_p_l _vcprintf_s _vcprintf_s_l _vcwprintf _vcwprintf_l _vcwprintf_p _vcwprintf_p_l _vcwprintf_s _vcwprintf_s_l _getch _getch_nolock _getche _getche_nolock _getwch _getwch_nolock _getwche _getwche_nolock _putch _putch_nolock _putwch _putwch_nolock _ungetch _ungetch_nolock _ungetwch _ungetwch_nolock _kbhit kbhit putch cgets cprintf cputs cscanf cwait getch getche ungetch これらの関数は、コンソールから直接読み取ったり、コンソールに直接書き込んだりするときに使用されます。These functions are used to read and write directly from and to the console. UWP アプリは GUI のみであり、コンソールをサポートしていません。UWP apps are GUI only; they don't support console. 回避策はありません。No workaround.
getpidgetpid これは古い関数です。This function is obsolete. _getpid または Win32 API GetCurrentProcessId()を使用します。Use _getpid or the Win32 API GetCurrentProcessId().
_getdiskfree_getdiskfree 使用できません。Not available. Win32 API GetDiskFreeSpaceExW()を使用します。Use the Win32 API GetDiskFreeSpaceExW().
_getdrive _getdrives_getdrive _getdrives 対応する API はUWP アプリでは使用できません。Corresponding API is not available for UWP apps. 回避策はありません。No workaround.
_inp _inpd _inpw _outp _outpd _outpw inp inpd inpw outp outpd outpw_inp _inpd _inpw _outp _outpd _outpw inp inpd inpw outp outpd outpw ポート IO は UWP アプリではサポートされていません。Port IO is not supported in UWP apps. 回避策はありません。No workaround.
_ismbcalnum _ismbcalnum_l _ismbcalpha _ismbcalpha_l _ismbcdigit _ismbcdigit_l _ismbcgraph _ismbcgraph_l _ismbchira _ismbchira_l _ismbckata _ismbckata_l _ismbcl0 _ismbcl0_l _ismbcl1 _ismbcl1_l _ismbcl2 _ismbcl2_l _ismbclegal _ismbclegal_l _ismbclower _ismbclower_l _ismbcprint _ismbcprint_l _ismbcpunct _ismbcpunct_l _ismbcspace _ismbcspace_l _ismbcsymbol _ismbcsymbol_l _ismbcupper _ismbcupper_l _mbbtombc _mbbtombc_l _mbbtype _mbbtype_l _mbccpy _mbccpy_l _mbccpy_s _mbccpy_s_l _mbcjistojms _mbcjistojms_l _mbcjmstojis _mbcjmstojis_l _mbclen _mbclen_l _mbctohira _mbctohira_l _mbctokata _mbctokata_l _mbctolower _mbctolower_l _mbctombb _mbctombb_l _mbctoupper _mbctoupper_l _mbsbtype _mbsbtype_l _mbscat _mbscat_l _mbscat_s _mbscat_s_l _mbschr _mbschr_l _mbscmp _mbscmp_l _mbscoll _mbscoll_l _mbscpy _mbscpy_l _mbscpy_s _mbscpy_s_l _mbscspn _mbscspn_l _mbsdec _mbsdec_l _mbsicmp _mbsicmp_l _mbsicoll _mbsicoll_l _mbsinc _mbsinc_l _mbslen _mbslen_l _mbslwr _mbslwr_l _mbslwr_s _mbslwr_s_l _mbsnbcat _mbsnbcat_l _mbsnbcat_s _mbsnbcat_s_l _mbsnbcmp _mbsnbcmp_l _mbsnbcnt _mbsnbcnt_l _mbsnbcoll _mbsnbcoll_l _mbsnbcpy _mbsnbcpy_l _mbsnbcpy_s _mbsnbcpy_s_l _mbsnbicmp _mbsnbicmp_l _mbsnbicoll _mbsnbicoll_l _mbsnbset _mbsnbset_l _mbsnbset_s _mbsnbset_s_l _mbsncat _mbsncat_l _mbsncat_s _mbsncat_s_l _mbsnccnt _mbsnccnt_l _mbsncmp _mbsncmp_l _mbsncoll _mbsncoll_l _mbsncpy _mbsncpy_l _mbsncpy_s _mbsncpy_s_l _mbsnextc _mbsnextc_l _mbsnicmp _mbsnicmp_l _mbsnicoll _mbsnicoll_l _mbsninc _mbsninc_l _mbsnlen _mbsnlen_l _mbsnset _mbsnset_l _mbsnset_s _mbsnset_s_l _mbspbrk _mbspbrk_l _mbsrchr _mbsrchr_l _mbsrev _mbsrev_l _mbsset _mbsset_l _mbsset_s _mbsset_s_l _mbsspn _mbsspn_l _mbsspnp _mbsspnp_l _mbsstr _mbsstr_l _mbstok _mbstok_l _mbstok_s _mbstok_s_l _mbsupr _mbsupr_l _mbsupr_s _mbsupr_s_l is_wctype_ismbcalnum _ismbcalnum_l _ismbcalpha _ismbcalpha_l _ismbcdigit _ismbcdigit_l _ismbcgraph _ismbcgraph_l _ismbchira _ismbchira_l _ismbckata _ismbckata_l _ismbcl0 _ismbcl0_l _ismbcl1 _ismbcl1_l _ismbcl2 _ismbcl2_l _ismbclegal _ismbclegal_l _ismbclower _ismbclower_l _ismbcprint _ismbcprint_l _ismbcpunct _ismbcpunct_l _ismbcspace _ismbcspace_l _ismbcsymbol _ismbcsymbol_l _ismbcupper _ismbcupper_l _mbbtombc _mbbtombc_l _mbbtype _mbbtype_l _mbccpy _mbccpy_l _mbccpy_s _mbccpy_s_l _mbcjistojms _mbcjistojms_l _mbcjmstojis _mbcjmstojis_l _mbclen _mbclen_l _mbctohira _mbctohira_l _mbctokata _mbctokata_l _mbctolower _mbctolower_l _mbctombb _mbctombb_l _mbctoupper _mbctoupper_l _mbsbtype _mbsbtype_l _mbscat _mbscat_l _mbscat_s _mbscat_s_l _mbschr _mbschr_l _mbscmp _mbscmp_l _mbscoll _mbscoll_l _mbscpy _mbscpy_l _mbscpy_s _mbscpy_s_l _mbscspn _mbscspn_l _mbsdec _mbsdec_l _mbsicmp _mbsicmp_l _mbsicoll _mbsicoll_l _mbsinc _mbsinc_l _mbslen _mbslen_l _mbslwr _mbslwr_l _mbslwr_s _mbslwr_s_l _mbsnbcat _mbsnbcat_l _mbsnbcat_s _mbsnbcat_s_l _mbsnbcmp _mbsnbcmp_l _mbsnbcnt _mbsnbcnt_l _mbsnbcoll _mbsnbcoll_l _mbsnbcpy _mbsnbcpy_l _mbsnbcpy_s _mbsnbcpy_s_l _mbsnbicmp _mbsnbicmp_l _mbsnbicoll _mbsnbicoll_l _mbsnbset _mbsnbset_l _mbsnbset_s _mbsnbset_s_l _mbsncat _mbsncat_l _mbsncat_s _mbsncat_s_l _mbsnccnt _mbsnccnt_l _mbsncmp _mbsncmp_l _mbsncoll _mbsncoll_l _mbsncpy _mbsncpy_l _mbsncpy_s _mbsncpy_s_l _mbsnextc _mbsnextc_l _mbsnicmp _mbsnicmp_l _mbsnicoll _mbsnicoll_l _mbsninc _mbsninc_l _mbsnlen _mbsnlen_l _mbsnset _mbsnset_l _mbsnset_s _mbsnset_s_l _mbspbrk _mbspbrk_l _mbsrchr _mbsrchr_l _mbsrev _mbsrev_l _mbsset _mbsset_l _mbsset_s _mbsset_s_l _mbsspn _mbsspn_l _mbsspnp _mbsspnp_l _mbsstr _mbsstr_l _mbstok _mbstok_l _mbstok_s _mbstok_s_l _mbsupr _mbsupr_l _mbsupr_s _mbsupr_s_l is_wctype マルチバイト文字列はUWP アプリではサポートされていません。Multi-byte strings are not supported in UWP apps. 代わりに、Unicode 文字列を使用します。Use Unicode strings instead.
_pclose _pipe _popen _wpopen_pclose _pipe _popen _wpopen パイプ機能は UWP アプリには使用できません。Pipe functionality is not available to UWP apps. 回避策はありません。No workaround.
_resetstkoflw_resetstkoflw サポートする Win32 API は UWP アプリでは使用できません。Supporting Win32 APIs are not available for UWP apps. 回避策はありません。No workaround.
_getsystime _setsystime_getsystime _setsystime これらは以前のバージョンの CRT で廃止された API です。These were obsolete APIs in previous CRT versions. また、ユーザーはアクセス許可がないため、UWP アプリのシステム時刻を設定できません。Also, a user cannot set the system time in a UWP app due to lack of permissions. システム時刻のみを取得するには、Win32 API GetSystemTimeを使用します。To get the system time only, use the Win32 API GetSystemTime. システム時刻は設定できません。System time cannot be set.
_environ _putenv _putenv_s _searchenv _searchenv_s _dupenv_s _wputenv _wputenv_s _wsearchenv getenv getenv_s putenv _wdupenv_s _wenviron _wgetenv _wgetenv_s _wsearchenv_s tzset_environ _putenv _putenv_s _searchenv _searchenv_s _dupenv_s _wputenv _wputenv_s _wsearchenv getenv getenv_s putenv _wdupenv_s _wenviron _wgetenv _wgetenv_s _wsearchenv_s tzset UWP アプリでは環境変数を使用できません。Environment variables are not available to UWP apps. 回避策はありません。No workaround. タイム ゾーンを設定するには、_tzset を使用します。To set the time zone, use _tzset.
_loaddll _getdllprocaddr _unloaddll_loaddll _getdllprocaddr _unloaddll これらは以前のバージョンの CRT で廃止された関数です。These were obsolete functions in previous CRT versions. また、ユーザーは同じアプリケーション パッケージのものを除き、DLL を読み込むことができません。Also, user cannot load DLLs except from those in the same application package. パッケージ化された DLL を読み込んで使用するには、Win32 API LoadPackagedLibraryGetProcAddressFreeLibrary を使用します。Use Win32 APIs LoadPackagedLibrary, GetProcAddress, and FreeLibrary to load and use packaged DLLs.
_wexecl _wexecle _wexeclp _wexeclpe _wexecv _wexecve _wexecvp _wexecvpe _execl _execle _execlp _execlpe _execv _execve _execvp _execvpe _spawnl _spawnle _spawnlp _spawnlpe _spawnv _spawnve _spawnvp _spawnvpe _wspawnl _wspawnle _wspawnlp _wspawnlpe _wspawnv _wspawnve _wspawnvp _wspawnvpe _wsystem execl execle execlp execlpe execv execve execvp execvpe spawnl spawnle spawnlp spawnlpe spawnv spawnve spawnvp spawnvpe system_wexecl _wexecle _wexeclp _wexeclpe _wexecv _wexecve _wexecvp _wexecvpe _execl _execle _execlp _execlpe _execv _execve _execvp _execvpe _spawnl _spawnle _spawnlp _spawnlpe _spawnv _spawnve _spawnvp _spawnvpe _wspawnl _wspawnle _wspawnlp _wspawnlpe _wspawnv _wspawnve _wspawnvp _wspawnvpe _wsystem execl execle execlp execlpe execv execve execvp execvpe spawnl spawnle spawnlp spawnlpe spawnv spawnve spawnvp spawnvpe system この機能は、UWP アプリでは使用できません。The functionality is not available in UWP apps. UWP アプリから別の UWP アプリまたはデスクトップ アプリを起動することはできません。A UWP app cannot invoke another UWP app or a desktop app. 回避策はありません。No workaround.
_heapwalk _heapadd _heapchk _heapset _heapused_heapwalk _heapadd _heapchk _heapset _heapused ここに挙げた関数は通常、ヒープを使用するために使用します。These functions are typically used to work with the heap. しかし、UWP アプリでは対応する Win32 API がサポートされていません。However, corresponding Win32 APIs are not supported in UWP apps. アプリがプライベート ヒープを作成したり使用したりすることはありません。And, apps can no longer create or use private heaps. 回避策はありません。No workaround. ただし、 _heapwalk はデバッグを目的とする場合にのみ DEBUG CRT で使用できます。However, _heapwalk available in the DEBUG CRT, for debugging purposes only. これらは、Microsoft Store にアップロードされるアプリで使用することはできません。These cannot be used in apps that are uploaded to the Microsoft Store.

次の関数は、UWP アプリの CRT で使用できますが、対応する Win32 または Windows ランタイム Api を使用できない場合にのみ使用する必要があります: 大規模なコード ベースを移植する場合など、The following functions are available in the CRT for UWP apps, but should be used only when the corresponding Win32 or Windows Runtime APIs cannot be used—for example, when you are porting large code bases

1 バイト文字列関数 ( strcatstrcpystrlwrなど)。Single-byte string functions—for example, strcat, strcpy, strlwr, and so on. UWP アプリには Unicode Unicode 文字セットのみを使用して、すべての Win32 Api と Windows ランタイム Api は公開されているためです。Make your UWP apps strictly Unicode because all Win32 APIs and Windows Runtime APIs that are exposed use Unicode character sets only. 1 バイトの関数は、大きなコード ベースを移植するときのために残されていますが、それ以外の状況では使用を避け、可能な限り対応するワイド文字関数を使用してください。Single-byte functions were left for porting large code bases, but should otherwise be avoided, and the corresponding wide char functions should be used instead when possible.
ストリーム IO 関数と低レベル ファイル IO 関数 ( fopenopenなど)。Stream IO and low-level file IO functions—for example, fopen, open, and so on. ここに挙げた関数は同期的であるため、UWP アプリに使用することは勧められていません。These functions are synchronous, which is not recommended for UWP apps. UWP アプリでは、UI スレッドがロックされることがないように、ファイルを開くとき、ファイルから読み取るとき、ファイルに書き込むときは非同期 API を使用します。In your UWP apps, use asynchronous APIs to open, read from, and write to files to prevent locking of the UI thread. このような API には、 Windows::Storage::FileIO クラスのものなどが挙げられます。Examples of such APIs are the ones in the Windows::Storage::FileIO class.

Windows 8.x ストア アプリと Windows Phone 8.x アプリWindows 8.x Store apps and Windows Phone 8.x apps

前述した API に加えて、次の API を Windows 8.x ストア アプリと Windows Phone 8.x アプリで使用することはできません。In addition to the previously mentioned APIs, the following APIs are not available in Windows 8.x Store apps and Windows Phone 8.x apps.

_beginthread _beginthreadex _endthread _endthreadex_beginthread _beginthreadex _endthread _endthreadex Windows 8.x ストア アプリで Win32 API をスレッド化することはできません。Threading Win32 APIs are not available in Windows 8.x Store apps. 代わりに Windows Runtime Windows::System::Threading::ThreadPool または concurrency::task を使用します。Use the Windows Runtime Windows::System::Threading::ThreadPool or concurrency::task instead.
_chdir _wchdir _getcwd _getdcwd _wgetcwd _wgetdcwd_chdir _wchdir _getcwd _getdcwd _wgetcwd _wgetdcwd 作業ディレクトリの概念は Windows 8.x ストア アプリには適用されません。The concept of a working directory doesn't apply to Windows 8.x Store apps. 代わりに完全パスを使用します。Use full paths instead.
_getpid_getpid この関数は以前のバージョンの CRT で廃止されています。This function were obsolete in previous versions of the CRT. Win32 API GetCurrentProcessId()を使用します。Use the Win32 API GetCurrentProcessId()
_isleadbyte_l _ismbbalnum, _ismbbalnum_l, _ismbbalpha, _ismbbalpha _ismbbalpha_l _ismbbgraph _ismbbgraph_l _ismbbkalnum _ismbbkalnum_l _ismbbkana _ismbbkana_l _ismbbkprint _ismbbkprint_l _ismbbkpunct _ismbbkpunct_l _ismbblead _ismbblead_l _ismbbprint _ismbbprint_l _ismbbpunct _ismbbpunct_l _ismbbtrail _ismbbtrail_l _ismbslead _ismbslead_l _ismbstrail _ismbstrail_l _mbsdup isleadbyte_isleadbyte_l _ismbbalnum, _ismbbalnum_l, _ismbbalpha, _ismbbalpha _ismbbalpha_l _ismbbgraph _ismbbgraph_l _ismbbkalnum _ismbbkalnum_l _ismbbkana _ismbbkana_l _ismbbkprint _ismbbkprint_l _ismbbkpunct _ismbbkpunct_l _ismbblead _ismbblead_l _ismbbprint _ismbbprint_l _ismbbpunct _ismbbpunct_l _ismbbtrail _ismbbtrail_l _ismbslead _ismbslead_l _ismbstrail _ismbstrail_l _mbsdup isleadbyte Windows 8.x ストア アプリではマルチバイト文字列がサポートされていません。Multi-byte strings are not supported in Windows 8.x Store apps. 代わりに、Unicode 文字列を使用します。Use Unicode strings instead.
_tzset_tzset Windows 8.x ストア アプリでは環境変数を使用できません。Environment variables are not available to Windows 8.x Store apps. 回避策はありません。No workaround.
_get_heap_handle、_heapmin_get_heap_handle, _heapmin Windows 8.x ストア アプリでは対応する Win32 API がサポートされません。The corresponding Win32 APIs are not supported in Windows 8.x Store apps. アプリでプライベート ヒープを作成できなくなりました。And, apps can no longer create private heaps. 回避策はありません。No workaround. ただし、 _get_heap_handle はデバッグを目的とする場合にのみ DEBUG CRT で使用できます。However, _get_heap_handle is available in the DEBUG CRT, for debugging purposes only.