gpt4 book ai didi

c++ - 为什么 CopyFile2 会替换 CopyFile 和 CopyFileEx?

转载 作者:太空狗 更新时间:2023-10-29 20:28:48 33 4
gpt4 key购买 nike

我最近和一个 friend 聊天,他告诉我 CopyFileCopyFileEx在 C++ Metro 应用程序中是不允许的(这似乎是正确的)。为什么是这样?为什么他们提出了一个奇怪的替代品,名为 CopyFile2

都是复制一个文件,为什么要禁止部分既定的API提出新的功能来搞清楚呢?

最佳答案

  1. 对 Metro API 采取的一般立场是“如果有 Ex 函数或其他东西取代它,则必须调用新函数”。 8 位字符串(由于历史原因被错误命名为“ANSI 编码”)版本的函数也是如此。除了其他好处之外,这还可以减少 Windows RT 的代码大小。

  2. 让我们分析一下 CopyFile2...首先,options 参数现在是一个结构,其大小作为第一个成员。我认为这比 CopyFileEx 所采用的方法对于 future 的可扩展性更好。这允许 Microsoft 添加新选项,同时保持与旧调用程序的二进制兼容性。 (Microsoft 可以扩展结构的长度,然后检查 dwSize 以确定您拥有的结构版本,并相应地调整其行为。)仅此一项就使它比 CopyFileEx 这将需要更改函数签名(因此是一个全新的函数)以添加单个选项。 (我没有仔细阅读,也许他们确实已经在 CopyFile2 中添加了一个选项......)

关于c++ - 为什么 CopyFile2 会替换 CopyFile 和 CopyFileEx?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12151294/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com