gpt4 book ai didi

c++ - 建立资源管理器上下文以使用智能卡读卡器

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:46:25 28 4
gpt4 key购买 nike

我正在使用 Visual Studio 2017 开发一个 c++ 应用程序。

我正在使用 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 相关联,它断言:

The Smart Card Resource Manager is not running.

在 Windows 7 系统上,该程序在没有管理员权限的情况下运行,在 Windows 10 系统上,我也尝试过使用管理员权限,但错误是相同的。

在我测试的每个 Windows 10 系统中,我在测试我的程序之前手动启动服务“智能卡”,并检查它在测试时是否仍在运行。

在 Windows 7 和 Windows 10 系统中,我都没有连接智能卡读卡器。

我使用的 winscard.lib 文件带有 Microsoft Windows SDK 版本 10.0.17763.0

要让它在 Windows 10 上运行,还需要做一些额外的事情吗?

最佳答案

智能卡子系统(和资源管理器)必须“开箱即用”。

尝试安装一些向系统提供虚拟插槽的智能卡驱动程序。
例如这个 one .

您是通过 RDP 工作吗?

关于c++ - 建立资源管理器上下文以使用智能卡读卡器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56397957/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com