由于 WINAPI_PARTITION_DESKTOP 块,无法在 UWP 应用程序中使用 winscard.h
Can't use winscard.h in a UWP app due to WINAPI_PARTITION_DESKTOP blocks
我正在用 C++ 开发通用 Windows 平台应用程序。我在 C++ 中有一个 working 项目,它可以与智能卡通信。对于此通信,它使用 winscard.h
库。
我想在 UWP 应用程序中使用 winscard.h
提供的这个功能,但我无法在 UWP 中编译它。经过一番研究,我发现在这个头文件中有一个条件:
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
这就是编译器找不到方法的原因。展望未来,我想将此 WINAPI_FAMILY_PARTITION
更改为 WINAPI_PARTITION_DESKTOP
,但我一无所获。
我在 appxmanifest 文件中将 TargetDeviceFamily
名称设置为 Windows.Desktop
,但没有用。
所以,我的问题是:
- 是否可以更改
WINAPI_FAMILY_PARTITION
?
如果不是:
- 我可以在 UWP 应用程序中使用
winscard.h
库吗?
WINAPI_PARTITION_DESKTOP
守卫意味着 UWP 应用程序不支持 API。解除对编译器的阻塞是微不足道的,但这不是一个好主意。
- 您可以通过使声明可见来解除对编译器的阻塞,但是这样您就会遇到问题 linking。
- 您可以手动将正确的导入库添加到 link,但由于安全检查,它可能会在运行时失败。
- 即使您设法做到了这一点,Windows 商店也不允许您的应用。
- 即使您让它正常工作并且不关心 Windows 商店,这也不受支持,并且随时可能中断。
正确的方法是使用 Windows.Devices.SmartCards
命名空间中的类型。如果 API 中缺少某些功能,您可以通过 UserVoice 或反馈中心发送反馈。
我正在用 C++ 开发通用 Windows 平台应用程序。我在 C++ 中有一个 working 项目,它可以与智能卡通信。对于此通信,它使用 winscard.h
库。
我想在 UWP 应用程序中使用 winscard.h
提供的这个功能,但我无法在 UWP 中编译它。经过一番研究,我发现在这个头文件中有一个条件:
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
这就是编译器找不到方法的原因。展望未来,我想将此 WINAPI_FAMILY_PARTITION
更改为 WINAPI_PARTITION_DESKTOP
,但我一无所获。
我在 appxmanifest 文件中将 TargetDeviceFamily
名称设置为 Windows.Desktop
,但没有用。
所以,我的问题是:
- 是否可以更改
WINAPI_FAMILY_PARTITION
? 如果不是: - 我可以在 UWP 应用程序中使用
winscard.h
库吗?
WINAPI_PARTITION_DESKTOP
守卫意味着 UWP 应用程序不支持 API。解除对编译器的阻塞是微不足道的,但这不是一个好主意。
- 您可以通过使声明可见来解除对编译器的阻塞,但是这样您就会遇到问题 linking。
- 您可以手动将正确的导入库添加到 link,但由于安全检查,它可能会在运行时失败。
- 即使您设法做到了这一点,Windows 商店也不允许您的应用。
- 即使您让它正常工作并且不关心 Windows 商店,这也不受支持,并且随时可能中断。
正确的方法是使用 Windows.Devices.SmartCards
命名空间中的类型。如果 API 中缺少某些功能,您可以通过 UserVoice 或反馈中心发送反馈。