
[英]CopyFile/CopyFileEx not working in Windows Server 2008 R2 SP1 x64
[英]Why does CopyFile2 replace CopyFile and CopyFileEx?
我最近和一位朋友谈过,他告诉我C ++ Metro应用程序中不允许使用CopyFile和CopyFileEx (看起来是正确的)。 为什么是这样? 为什么他们提出了一个名为CopyFile2的奇怪替代品
他们都复制了一个文件,为什么要禁止部分已建立的API提出一个新功能来解决?
使用metro API的一般立场是“如果有Ex功能或某些东西取代它,你必须调用新的。” 对于8位字符串(由于历史原因而错误命名为“ANSI编码”)版本的函数也是如此。 除了其他好处之外,这还可以降低Windows RT的代码大小。
让我们分析一下CopyFile2
......例如,options参数现在是一个大小为第一个成员的结构。 我认为这对于未来的可扩展性比CopyFileEx
采用的方法更好。 这允许Microsoft在保持与旧调用者的二进制兼容性的同时添加新选项。 (Microsoft可以扩展结构的长度,然后检查dwSize
以确定您拥有的结构的版本,并相应地调整其行为。)仅此一点使它比CopyFileEx
更具未来性,这需要更改函数签名(因此完全是新功能)添加单个选项。 (我还没有仔细看,说不定他们也已经加入一个选项CopyFile2
以及...)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.