我一直在尝试按照说明安装Windows SDK附带的示例VSS硬件提供程序。不幸的是,COM拒绝注册DLL,并提供以下输出:
Unregistering the existing application...
- Create the catalog object
- Get the Applications collection
- Populate...
- Search for VssSampleProvider application...
- Saving changes...
Done.
Creating a new COM+ application:
- Creating the catalog object
- Get the Applications collection
- Populate...
- Add new application object
- Set app name = VssSampleProvider
- Set app description = VSS HW Sample Provider
- Set app access check = true
- Set encrypted COM communication = true
- Set secure references = true
- Set impersonation = false
- Save changes...
- Create Windows service running as Local System
- Add the DLL component
ERROR:
- Error code: -2146368511 [0x80110401]
- Exit code: 113
- Description:
- Source:
- Help file:
- Help context: 0
- COM+ Errors detected: (2)
* (COM+ ERROR 0) on C:\VssSampleProvider\VssSampleProvider.dll
ErrorCode: -2146368486 [0x8011041A]
MajorRef: C:\VssSampleProvider\VssSampleProvider.dll
MinorRef: invalid
* (COM+ ERROR 1) on SampleProvider
ErrorCode: -2146368486 [0x8011041A]
MajorRef: {423BBC78-9B20-4BBE-A967-B63EC43BC7F3}
MinorRef: invalid
这与该线程中描述的问题相同:
http://www.osronline.com/showthread.cfm?link=185213
我曾尝试同时使用x86和x64机器,但这没什么区别。任何提示或建议都将受到欢迎。
这需要msvcr110.dll和msvcp110.dll。这些文件带有“ Visual C ++可再发行组件包”。您可以通过以下链接获取最新的“ Visual C ++可再发行组件包”。http://www.microsoft.com/en-in/download/details.aspx?id=40784
我最终设法解决了这个问题。事实证明,您只能在Windows Server发行版上安装硬件提供程序,而我使用的是普通Windows7。有关API调用,请参见MSDN页面:
http://msdn.microsoft.com/en-us/library/windows/desktop/aa381923(v=vs.85).aspx
对于Windows Server 2012计算机上的SDK进行64位编译和使用64位工具,它似乎可以正常工作。