C语言运行时库中哪些API在UWP中不可用?

翻译 2016年05月31日 22:40:09


_beep _sleep _seterrormode

这些函数在以前版本的 CRT 中已过时。 此外,对应 Win32 API 不可用于 UWP 应用。

无解决方法。

chdir _chdrive getcwd

这些函数已过时或不是线程安全的。

使用 _chdir、_getcwd 及相关函数。

_cgets *

_cputs *

_cprintf *

_cscanf *

_getc getch ungetch *

这些函数用于直接从控制台读取和写入控制台。 UWP 应用仅限 GUI;它们不支持控制台。

无解决方法。

getpid

此函数已过时。

使用 _getpid 或 Win32 API GetCurrentProcessId()

_getdiskfree

不可用。

使用 Win32 API GetDiskFreeSpaceExW()

_getdrive _getdrives

对应 API 不可用于 UWP 应用。

无解决方法。

_inp _inpd _inpw _outp _outpd

 _outpw inp inpd inpw outp

 outpd outpw

UWP 应用中不支持端口 IO。

无解决方法。

_ismbc*

_mbs* 

 

UWP 应用中不支持多字节字符串。

改为使用 Unicode 字符串。

_pclose _pipe _popen _wpopen

管道功能不可用于 UWP 应用。

无解决方法。

_resetstkoflw

支持 Win32 API 不可用于 UWP 应用。

无解决方法。

_getsystime _setsystime

这些是以前 CRT 版本中的已过时 API。 此外,用户无法在 UWP 应用中设置系统时间,因为缺少权限。

若要只获取系统时间,请使用 Win32 API GetSystemTime。 无法设置系统时间。

_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 应用。

无解决方法。 若要设置时区,请使用 _tzset。

_loaddll _getdllprocaddr _unloaddll

这些是以前 CRT 版本中的已过时函数。 此外,用户无法加载 DLL(同一个应用程序包中的 DLL 除外)。

使用 Win32 API LoadPackagedLibraryGetProcAddress 和 FreeLibrary 加载和使用打包的 DLL。

_wexe*

_exe*

_wspawn*

_spawn*

Spawn*

system

该功能在 UWP 应用中不可用。 UWP 应用无法调用另一个 UWP 应用或桌面应用。

无解决方法。

_heapwalk _heapadd _heapchk

 _heapset _heapused

这些函数通常用于处理堆。 但是,UWP 应用中不支持对应 Win32 API。 而且,应用无法再创建或使用专用堆。

无解决方法。 但是,_heapwalk 在 DEBUG CRT 中可用(仅用于进行调试)。 这些函数无法在上载到 Windows 应用商店的应用中使用。

以下函数在 CRT 中可用于 UWP 应用,但应仅当无法使用对应 Win32 或 Windows 运行时 API 时才使用(例如,要移植大型基本代码时)。

单字节字符串函数(例如,strcatstrcpystrlwr 等)。

使 UWP 应用严格遵循 Unicode 标准,因为公开的所有 Win32 API 和 Windows 运行时 API 都仅使用 Unicode 字符集。 保留了单字节函数,以便用于移植大型基本代码,但在其他情况下应避免使用,并且应尽可能改用对应的宽字符函数。

流 IO 和低级文件 IO 函数(例如,fopenopen 等)。

这些函数是同步的,不推荐用于 UWP 应用。 在 UWP 应用中,使用异步 API 打开、读取和写入文件,以防止锁定 UI 线程。 这类 API 的示例是在 Windows::Storage::FileIO 类中的一个。

相关文章推荐

为 UWP 应用提供的 .NET 网络 API

【编者按】本文作者是 Windows networking 团队项目经理 Sidharth Nabar。在微软 Build 2015 大会上,.NET Core 5 作为开发 UWP(Universa...

Win32 C++项目移植到 Win10 UWP

如果你正在做将现有的Win32 静态库或DLL 工程移植到Win10 UWP 环境,这篇文章可能会对你有帮助。...
  • conan98
  • conan98
  • 2016年08月19日 00:00
  • 3005

GetVersionEx 获取系统版本信息

最近在windows 8上获取系统版本信息需要调用系统API,于是用到了GetVersionEx。 首先看一看函数原型: [cpp] view plaincopy BOOL ...

用Visual C#获取系统信息四法

所谓系统信息,就是计算机的软件硬件信息,硬件如CPU主频、网卡名称等,软件信息就如操作系统目录,用户目录等。在平常的编程中,我们往往要用到这些系统信息,比如我前面的字体查看器,如果要写个C#版,则首先...
  • taokai
  • taokai
  • 2008年01月02日 08:58
  • 3199

antlr C语言运行时库

  • 2009年09月20日 18:25
  • 506KB
  • 下载

C语言运行时库详解

网址:http://blog.csdn.net/jxth152913/archive/2010/07/02/5708369.aspx运行时库是程序在运行时所需要的库文件,通常运行时库是以LIB或DLL...

C语言运行时库详解 (C/C++ Runtime)

运行时库是程序在运行时所需要的库文件,通常运行时库是以LIB或DLL形式提供的。C运行时库诞生于20世纪70年代,当时的程序世界还很单纯,应用程序都是单线程的,多任务或多线程机制在此时还属于新观念。所...
  • softfox
  • softfox
  • 2013年03月01日 16:41
  • 5466

QT加载muPDF静态库的问题和解决(导入C语言静态库,QT的运行时库设定)

http://my.oschina.net/jinzei/blog/130754

运行时库、标准库和系统api

运行时库、标准库和系统api
  • sshhbb
  • sshhbb
  • 2011年01月27日 10:15
  • 1421

Windows API和C运行时库CRT的关系

初学C那会儿,还不知道C语言运行时库(CRT)的概念,以为C是和平台无关的,也就是说Windows API是调用了C的函数实现的。到了后来却发现根本不是那么回事,反而呢是C函数库里面的一些函数调用的W...
  • lvan100
  • lvan100
  • 2012年06月24日 11:38
  • 4357
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C语言运行时库中哪些API在UWP中不可用?
举报原因:
原因补充:

(最多只允许输入30个字)