【问题标题】:is there any volume shadow copy SDK for windows 8?是否有适用于 Windows 8 的卷影复制 SDK?
【发布时间】:2015-06-20 00:35:52
【问题描述】:

我尝试安装 Windows 卷影复制 SDK 但是当我看到这个链接时它只支持 windows 2003 和 xp http://www.microsoft.com/en-us/download/details.aspx?id=23490

我试图强制安装以查看会发生什么,我使用 msvc 2010 开发它,它给我错误,每当我放

#include "vswriter.h"

它给了我很多错误

1>c:\program files (x86)\microsoft\vsssdk72\inc\winxp\vswriter.h(117): error 

C2504: 'IUnknown' : base class undefined
1>c:\program files (x86)\microsoft\vsssdk72\inc\winxp\vswriter.h(120): error C2061: syntax error : identifier 'GetPath'
1>c:\program files (x86)\microsoft\vsssdk72\inc\winxp\vswriter.h(120): error C2061: syntax error : identifier 'OUT'
1>c:\program files (x86)\microsoft\vsssdk72\inc\winxp\vswriter.h(120): error C2091: function returns function
1>c:\program files (x86)\microsoft\vsssdk72\inc\winxp\vswriter.h(120): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files (x86)\microsoft\vsssdk72\inc\winxp\vswriter.h(120): warning C4183: 'STDMETHOD': missing return type; assumed to be a member function returning 'int'
1>c:\program files (x86)\microsoft\vsssdk72\inc\winxp\vswriter.h(123): error C2061: syntax error : identifier 'GetFilespec'
1>c:\program files (x86)\microsoft\vsssdk72\inc\winxp\vswriter.h(123): error C2061: syntax error : identifier 'OUT'
1>c:\program files (x86)\microsoft\vsssdk72\inc\winxp\vswriter.h(123): error C2091: function returns function
1>c:\program files (x86)\microsoft\vsssdk72\inc\winxp\vswriter.h(123): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files (x86)\microsoft\vsssdk72\inc\winxp\vswriter.h(123): error C2535: 'int (__cdecl *IVssWMFiledesc::STDMETHOD(void))(void)' : member function already defined or declared
1>          c:\program files (x86)\microsoft\vsssdk72\inc\winxp\vswriter.h(120) : see declaration of 'IVssWMFiledesc::STDMETHOD'
1>c:\program files (x86)\microsoft\vsssdk72\inc\winxp\vswriter.h(123): warning C4183: 'STDMETHOD': missing return type; assumed to be a member function returning 'int'
1>c:\program files (x86)\microsoft\vsssdk72\inc\winxp\vswriter.h(126): error C2061: syntax error : identifier 'GetRecursive'
1>c:\program files (x86)\microsoft\vsssdk72\inc\winxp\vswriter.h(126): error C2061: syntax error : identifier 'OUT'
1>c:\program files (x86)\microsoft\vsssdk72\inc\winxp\vswriter.h(126): error C2091: function returns function
1>c:\program files (x86)\microsoft\vsssdk72\inc\winxp\vswriter.h(126): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files (x86)\microsoft\vsssdk72\inc\winxp\vswriter.h(126): error C2535: 'int (__cdecl *IVssWMFiledesc::STDMETHOD(void))(void)' : member function already defined or declared
1>          c:\program files (x86)\microsoft\vsssdk72\inc\winxp\vswriter.h(120) : see declaration of 'IVssWMFiledesc::STDMETHOD'
1>c:\program files (x86)\microsoft\vsssdk72\inc\winxp\vswriter.h(126): warning C4183: 'STDMETHOD': missing return type; assumed to be a member function returning 'int'
1>c:\program files (x86)\microsoft\vsssdk72\inc\winxp\vswriter.h(129): error C2061: syntax error : identifier 'GetAlternateLocation'
1>c:\program files (x86)\microsoft\vsssdk72\inc\winxp\vswriter.h(129): error C2061: syntax error : identifier 'OUT'
1>c:\program files (x86)\microsoft\vsssdk72\inc\winxp\vswriter.h(129): error C2091: function returns function
1>c:\program files (x86)\microsoft\vsssdk72\inc\winxp\vswriter.h(129): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files (x86)\microsoft\vsssdk72\inc\winxp\vswriter.h(129): error C2535: 'int (__cdecl *IVssWMFiledesc::STDMETHOD(void))(void)' : member function already defined or declared
1>          c:\program files (x86)\microsoft\vsssdk72\inc\winxp\vswriter.h(120) : see declaration of 'IVssWMFiledesc::STDMETHOD'
1>c:\program files (x86)\microsoft\vsssdk72\inc\winxp\vswriter.h(129): warning C4183: 'STDMETHOD': missing return type; assumed to be a member function returning 'int'
1>c:\program files (x86)\microsoft\vsssdk72\inc\winxp\vswriter.h(120): error C2253: 'IVssWMFiledesc::STDMETHOD' : pure specifier or abstract override specifier only allowed on virtual function
1>c:\program files (x86)\microsoft\vsssdk72\inc\winxp\vswriter.h(135): error C2504: 'IUnknown' : base class undefined
1>c:\program files (x86)\microsoft\vsssdk72\inc\winxp\vswriter.h(138): error C2061: syntax error : identifier 'GetLogicalPath'
1>c:\program files (x86)\microsoft\vsssdk72\inc\winxp\vswriter.h(138): error C2061: syntax error : identifier 'OUT'
1>c:\pr

这是否意味着 win8 不支持 vshadow SDK?还是停产了?还是我安装错了?

【问题讨论】:

  • IUnknown 错误意味着您在 #include 此文件之前缺少基本 COM 标头。使用 Win32 API,它应该是in the base SDK,所以如果你有更新的 SDK,那么你应该不需要下载这个包
  • 在哪里可以获得更新的 SDK?你的意思是windows SDK?还是 microsoft visual studio for C++ 中的 API 环境?
  • 是的,Windows Win32 SDK。从Download Microsoft Windows SDK 链接下载它,该链接位于我在之前评论中链接的页面上。
  • 你能尝试加载这个 VS2012 解决方案并查看它是否构建吗?如果是这样,那么此示例中#includes 的项目设置/正确顺序可以为您提供帮助。 code.msdn.microsoft.com/windowsdesktop/…

标签: c++ shadow-copy


【解决方案1】:

适用于 8/8.1 的 Windows SDK 包括 VSS:https://msdn.microsoft.com/en-us/windows/desktop/hh852363.aspx

使用此 SDK 编译的相应“vshadow”代码示例位于:https://msdn.microsoft.com/en-us/windows/desktop/hh852363.aspx (无需单独安装 VSS SDK)

AFAIK,您无法使用 Visual Studio 的快速版本(示例页面上也提到)编译 ATL/COM 项目:

警告此示例需要 Microsoft Visual Studio 2013,并且无法在 Microsoft Visual Studio Express 2013 for Windows 中编译。

您需要 Visual Studio 2013 或更高版本的专业版/企业版。

【讨论】:

    猜你喜欢
    • 2010-12-29
    • 2016-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-16
    • 2012-02-15
    • 2011-03-18
    相关资源
    最近更新 更多