为什么 CopyFile2 取代了 CopyFile 和 CopyFileEx
Why does CopyFile2 replace CopyFile and CopyFileEx?
我最近和一个朋友聊天,他告诉我C++Metro应用程序中不允许使用CopyFile和CopyFileEx(这似乎是正确的(。这是为什么呢?为什么他们提出了一个名为CopyFile2的奇怪替代品
他们都复制了一个文件,那么为什么要禁止部分已建立的 API 来提出一个新函数来弄清楚呢?
-
对地铁API采取的一般立场是"如果有Ex功能或其他东西取代它,你必须调用新的功能。 函数的 8 位字符串(由于历史原因错误命名为"ANSI 编码"(版本也是如此。 除了其他好处之外,这还可以减小Windows RT的代码大小。
-
让我们分析一下
CopyFile2
... 首先,选项参数现在是一个大小作为第一个成员的结构。 我认为这比CopyFileEx
采取的方法更适合未来的可扩展性。 这允许Microsoft添加新选项,同时保持与旧调用方的二进制兼容性。 (Microsoft可以延长结构的长度,然后检查dwSize
以确定您拥有的结构版本,并相应地调整其行为。 仅此一项就使它比需要更改函数签名(因此是一个全新的函数(来添加单个选项的CopyFileEx
更能证明未来。 (我没有仔细阅读,也许他们也已经在CopyFile2
中添加了一个选项......
相关文章:
- 如何在C++中将SHGetKnownFolderPath输出提供给CopyFile
- 如何修复 CopyFile() 错误 5 - 访问被拒绝错误
- 在我可以从fopen打开文件时,CopyFile无法找到该文件
- 为什么 CopyFile2 取代了 CopyFile 和 CopyFileEx
- windows CopyFile的正确输入格式是什么
- CopyFileEx 在 Qt 中带有进度回调
- 如何使用 CopyFile 将特定类型的文件从一个文件夹复制到另一个文件夹
- CopyFile失败,错误代码为3(error_PATH_NOT_FOUND)
- 是否存在跨平台版本的win32 CopyFile
- CopyFile 不适用于环境字符串,但仅适用于放置文件的标准目录。无论如何要克服这个?
- 如果断电,mkdir和copyFile不完整
- CopyFile/CopyFileEx不能在Windows Server 2008 R2 SP1 x64中工作
- copyfile function on Mac OS X