我正在创建一个自定义凭据提供程序包装器。Windows 7 SDK示例凭据提供程序包装器已经完成了我想要的大部分工作,因此我的计划是从那里开始,并进行修改,以便它可以做到我需要的一切。
然而,我遇到了一个小问题。我想使用Visual Studio 2012进行开发工作。这些示例是使用Visual Studio 2008创建的。在使用Visual Studio 2008时,我已经成功构建和使用了示例提供程序。但是,当我尝试将项目导入Visual Studio 2012时,它会编译得很好,但在尝试使用它时却无法正常工作。
我已经能够使用WinDbg验证凭据提供程序在锁定/登录屏幕上加载,但没有显示任何内容。不幸的是,我对WinDbg不太了解,无法使用该工具跟踪问题。
在研究出现问题的情况时,我看到有人建议在win32平台上为64位机器编译凭据提供程序时会出现问题。我正在使用64位机器,并确保在两个版本的Visual Studio中都使用x64平台进行编译。
另外值得一提的是,在执行VS2008到VS2012转换后,我必须将“运行时库”设置从“多线程DLL(/MD)”更改为“多线程(/MT)”。这是VS2008项目中的原始设置。可以在不进行此更改的情况下使凭据提供程序“工作”(即不会抛出关于缺少DLL依赖项的错误),但我必须先安装Visual C++ Redistributable for Visual Studio 2012。进行此更改可消除该依赖项。
请问如何解决此问题并成功地在VS2012中编译凭据提供程序示例?
更新:
在同一台机器上安装了VS2008和VS2012后,我能够将“平台工具集”属性从“Visual Studio 2012(v110)”更改为“Visual Studio 2008(v90)”。进行此更改后,编译工作正常,并且凭据提供程序的工作方式与直接使用VS2008编译时相同。在此测试中未更改其他设置。我可以使用这个解决方案,但似乎应该能够使用VS2012平台工具集来解决此问题,因此我不想就此放弃,因为VS2008链接器可能存在很多错误。
然而,我遇到了一个小问题。我想使用Visual Studio 2012进行开发工作。这些示例是使用Visual Studio 2008创建的。在使用Visual Studio 2008时,我已经成功构建和使用了示例提供程序。但是,当我尝试将项目导入Visual Studio 2012时,它会编译得很好,但在尝试使用它时却无法正常工作。
我已经能够使用WinDbg验证凭据提供程序在锁定/登录屏幕上加载,但没有显示任何内容。不幸的是,我对WinDbg不太了解,无法使用该工具跟踪问题。
在研究出现问题的情况时,我看到有人建议在win32平台上为64位机器编译凭据提供程序时会出现问题。我正在使用64位机器,并确保在两个版本的Visual Studio中都使用x64平台进行编译。
另外值得一提的是,在执行VS2008到VS2012转换后,我必须将“运行时库”设置从“多线程DLL(/MD)”更改为“多线程(/MT)”。这是VS2008项目中的原始设置。可以在不进行此更改的情况下使凭据提供程序“工作”(即不会抛出关于缺少DLL依赖项的错误),但我必须先安装Visual C++ Redistributable for Visual Studio 2012。进行此更改可消除该依赖项。
请问如何解决此问题并成功地在VS2012中编译凭据提供程序示例?
更新:
在同一台机器上安装了VS2008和VS2012后,我能够将“平台工具集”属性从“Visual Studio 2012(v110)”更改为“Visual Studio 2008(v90)”。进行此更改后,编译工作正常,并且凭据提供程序的工作方式与直接使用VS2008编译时相同。在此测试中未更改其他设置。我可以使用这个解决方案,但似乎应该能够使用VS2012平台工具集来解决此问题,因此我不想就此放弃,因为VS2008链接器可能存在很多错误。