我们有一个UWP应用中P /调用的C ++ dll。 dll使用CreateFile函数打开USB设备。
hDevice = CreateFile("\\\\.\\EZUSB_FX2", GENERIC_WRITE, 0, FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0, NULL);
一切正常,除了必须对我们的应用进行侧面加载。
向前迈进,我们已将C ++ dll中的大多数不兼容功能替换为兼容功能。
但是,在使用CreateFile2打开设备时,它失败并显示错误代码ERROR_NOT_SUPPORTED_IN_APPCONTAINER
hDevice = CreateFile2(L"\\\\.\\EZUSB_FX2", GENERIC_WRITE, 0, OPEN_EXISTING, NULL);
通过UWP中的Win32调用打开设备的推荐方法是什么?
答案 0 :(得分:0)
从Windows应用商店应用调用时,CreateFile2得以简化。您只能在ApplicationData.LocalFolder或Package.InstalledLocation目录中打开文件或目录。您无法打开命名管道或邮槽,也无法创建加密文件(FILE_ATTRIBUTE_ENCRYPTED)。
这就是您得到错误的原因。
如果要在USB设备中创建文件,更好的方法是使用UWP RemovableDevices
API。有关更多详细信息,请参阅此tutorial。如果您坚持使用Win32 API,也许您需要考虑Desktopbridge技术。