S.O*_*oli 5 c++ smartcard winscard windows-10
我正在c++使用Visual Studio 2017 开发应用程序。
我正在使用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);
}
Run Code Online (Sandbox Code Playgroud)
我所知道的是,此功能使用Windows服务(称为“智能卡”)来获取执行数据库操作(读/写卡)的范围。
不幸的是,这个简单的应用程序SCARD_S_SUCCESS仅在Windows 7环境中有效(即返回代码)。在我测试过的所有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兼容,还有其他事情要做?
| 归档时间: |
|
| 查看次数: |
307 次 |
| 最近记录: |