我正在开发一个使用Visual Studio 2017的C++应用程序。
我正在使用Windows库winscard。我正在从一个简单的项目开始,其中调用函数
我使用的代码片段如下:
我所知道的是,此函数使用名为“智能卡”的 Windows 服务来获取执行数据库操作(读/写卡)的范围。
不幸的是,这个简单的应用程序只在 Windows 7 环境下工作(即返回
智能卡资源管理器未运行。
在 Windows 7 系统上,该程序无需管理员权限即可工作,在 Windows 10 系统上,我也尝试了使用管理员权限,但错误仍然存在。
在我测试的每个 Windows 10 系统中,我都手动启动了“智能卡”服务,并在测试时检查其是否仍在运行。
在 Windows 7 和 Windows 10 系统中,我都没有连接智能卡读卡器。
我使用的
有没有其他额外的操作可以让它在 Windows 10 上正常工作?
我正在使用Windows库winscard。我正在从一个简单的项目开始,其中调用函数
SCardEstablishContext
作为读取智能卡所需的第一步。我使用的代码片段如下:
LONG resContext = SCardEstablishContext(SCARD_SCOPE_SYSTEM, NULL, NULL, &hSC);
if (resContext != SCARD_S_SUCCESS) {
printf("Failed\n");
printf("Error %X\n", resContext);
}
我所知道的是,此函数使用名为“智能卡”的 Windows 服务来获取执行数据库操作(读/写卡)的范围。
不幸的是,这个简单的应用程序只在 Windows 7 环境下工作(即返回
SCARD_S_SUCCESS
代码)。在我测试的所有 Windows 10 系统中,返回代码始终为 0x8010001DL
,与定义 SCARD_E_NO_SERVICE
相关联,它断言:智能卡资源管理器未运行。
在 Windows 7 系统上,该程序无需管理员权限即可工作,在 Windows 10 系统上,我也尝试了使用管理员权限,但错误仍然存在。
在我测试的每个 Windows 10 系统中,我都手动启动了“智能卡”服务,并在测试时检查其是否仍在运行。
在 Windows 7 和 Windows 10 系统中,我都没有连接智能卡读卡器。
我使用的
winscard.lib
文件随 Microsoft Windows SDK
版本 10.0.17763.0
一起提供。有没有其他额外的操作可以让它在 Windows 10 上正常工作?