J'utilise le port Alpha WinRT Qt 5.6 sur Windows 10 et je veux accéder à l'API Wifi Direct de WinRT à partir de l'application Qt.À quel type d'API WinRT ai-je accès depuis l'application Qt?
Je sais que WRL devrait être utilisé pour cela. Mais j'obtiens un comportement différent en utilisant l'API Wifi Direct dans mon application et en essayant l'exemple Windows Universal à partir de Microsoft's GitHub repository. Plus précisément, j'obtiens E_NOTIMPL lorsque j'essaie d'activer WiFiDirectDevice, alors que l'exemple de Microsoft fonctionne très bien.
HStringReference strDevice(RuntimeClass_Windows_Devices_WiFiDirect_WiFiDirectDevice);
ComPtr<IInspectable> insp;
hr = RoActivateInstance(strDevice.Get(), insp.GetAddressOf());
Je suis confus au sujet de ce type d'API que je vous appelle (Windows magasin ou bureau) de l'application Qt?
L'erreur est très précise, ce n'est vraiment pas mis en œuvre. Vous devez créer l'instance avec la fonction d'usine, FromIdAsync(). Bien démontré dans l'exemple de code. Vous allez probablement tomber dans la fosse du succès beaucoup plus rapidement lorsque vous écrivez un peu de code C++/CX à la place. –
@HansPassant Qt recommande fortement d'utiliser WRL. Et je n'ai trouvé aucune information sur la façon d'utiliser C++/CX et API sans espace de noms ABI dans l'application Qt. Est-il possible de réaliser cela avec WRL? – Yrchgrchh
@HansPassant Je veux dire pour appeler FromIdAsync, j'ai besoin d'activer IWifiDirectDeviceStatic interaface, ce qui me renvoie E_NOTIMPL aussi. Et il n'y a pas d'usines dans mon windows.devices.wifidirect.h – Yrchgrchh