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 类中的一个。

Win32 C++项目移植到 Win10 UWP

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

UWP入门(十)--创建、写入和读取文件

核心的 API github代码 StorageFolder 类 StorageFile 类 FileIO 类 使用 StorageFile 对象读取和写入文件 1. 创建文件// Create sa...
  • u011033906
  • u011033906
  • 2017年03月23日 18:32
  • 2027

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

【编者按】本文作者是 Windows networking 团队项目经理 Sidharth Nabar。在微软 Build 2015 大会上,.NET Core 5 作为开发 UWP(Universa...
  • wangpeng198688
  • wangpeng198688
  • 2015年12月08日 11:38
  • 1018

Win10/UWP开发:让你的App使用上扫描仪

UWP的扫描仪功能现在被微软划分到了[Windows Desktop Extensions for the UWP]中,如果要使用扫描仪扫描图片到自己的App中,首先我们要添加[Windows Des...
  • igweyou
  • igweyou
  • 2015年12月03日 10:44
  • 1610

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

_beep _sleep _seterrormode 这些函数在以前版本的 CRT 中已过时。 此外,对应 Win32 API 不可用于 UWP 应用。 无解决方法。 chdir _c...
  • lengjianjun
  • lengjianjun
  • 2016年05月31日 22:40
  • 1390

Linux API和c运行时库等关系

1.系统调用与POSIX 系统调用是用户应用程序访问并使用内核所提供的各种服务的途径。 但通常情况下,应用程序不是直接通过系统调用来编程,而是通过操作系统提供的编程接口(API)。 操作系统API的主...
  • nodeathphoenix
  • nodeathphoenix
  • 2013年09月11日 10:46
  • 1839

VS中各种C运行时库的区别

各种C运行时库的区别   编译器链接选项:   Visual C++编译时到底哪个C运行时库联入程序取决于编译选项,选项告诉编译器应用程序想使用什么版本的C标准程序库。与标准程...
  • lc_910927
  • lc_910927
  • 2015年02月05日 14:11
  • 1582

C#将dll打包到程序中

有时候我们会使用第三方的库,好多游戏也是使用第三方库,在没有安装第三方就会出错。而现在我们经常使用绿色软件,希望直接运行一个软件,不要下载很多库。我们有一个简单的方法把dll库打包程序中我们可以添加A...
  • lindexi_gd
  • lindexi_gd
  • 2016年05月29日 08:56
  • 1785

win10 uwp 上传Nuget 让别人用我们的库

本文主要讲如何制作一个库上传到Nuget
  • lindexi_gd
  • lindexi_gd
  • 2016年07月29日 15:38
  • 2437

C/C++运行时库

一、运行时库 程序运行时不可缺少的库就是运行时库(或者叫运行期库,英文名称run-time library),通常以静态库或者动态库的形式呈现。比如C运行时库( C run-time library...
  • lcfeng1982
  • lcfeng1982
  • 2014年01月18日 09:19
  • 2804
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C语言运行时库中哪些API在UWP中不可用?
举报原因:
原因补充:

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