問題タブ [wrl]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - WinRT WRL ABI コレクション
私は WRL で作業しようとしましたが、コレクションにこだわっています。
追加のプロパティを関数に渡す必要があります。
しかし、IIterableにはそれを埋めるメソッドがなく、タッチもありませんIVector<T>
(これには塗りつぶしのメソッドがありますが、インターフェースを抽象化しています)。
そこのような独自のベクトルを実装する必要がありますか、それともコレクションを操作するためのより簡単な方法が存在しますか? これらのインターフェイスで ABI 関数を返すのは、どのような種類のコレクションですか?
c++ - ref クラスのインスタンスをアクティブ化する方法
このクラスがあるとします:
このクラスのインスタンスを次のようにアクティブ化できます。
しかし、生の C++ でそれを行うにはどうすればよいでしょうか。
私はこれを試しましたが、うまくいきません:
上記のコードは、独自の参照クラス「App1.Page1」ではなく、Windows ランタイム クラス名 (「Windows.UI.Xaml.Controls.Button」など) を指定すると機能します。
または、名前空間で名前が付けられた public ref クラスを宣言しPage1
たApp1
場合、このクラスのインスタンスをIInspectable*
HSTRING "App1.Page1" からアクティブ化するにはどうすればよいでしょうか?
c++ - C++ WRL を使用して UsbDevice を開く - ERROR_INVALID_HANDLE
Windows::Devices::Usb::UsbDevice
サードパーティのプラグインに渡すために、私が持っている特定の USB デバイスを参照するオブジェクトを取得しようとしています。プロジェクトの制限により、C++/CX
拡張機能を使用できません。
無数のスレッド、回答、参照を調べた後、必要な WinRT クラスで静的メソッドを呼び出すための黒魔術を行う初期実装を思いつきました。唯一の問題は、呼び出しが失敗した場合でも、HRESULT
への最後の呼び出しがFromIdAsync
機能せず、の結果としてERROR_INVALID_HANDLE
( 6
) が返されることですGetLastError()
。
エラー名を読むだけで、デバイスのIDを取得するのが間違いだと思います。これは、その呼び出しで渡す唯一のハンドルですが、代わりに定数文字列を渡そうとしました(正しいことはわかっていました)。同じ結果が得られました。
これが私が呼び出す方法ですFromIdAsync
*:
そして、これが私が得ている方法ですdevId
*:
また、次のように WinRT を初期化します。
*if (FAILED(hr)) return nullptr;
簡潔にするために複数を削除しました。
c++ - 9 個を超える引数を持つコンストラクターに対して Microsoft::WRL::Make を呼び出す
Microsoft::WRL::Make
オブジェクトのコンストラクターに転送される最大 9 つの引数で定義されているようです。std::tuple
は明らかな解決策ですが、理想からはほど遠いものです。この問題を解決するよりエレガントな方法はありますか?
WRL のメンテナーが潜んでいる場合は、可変個引数テンプレートのサポートを(およびなどMake
と同様に) に追加してください。RuntimeClass
uwp - UWP は WRL をサポートしていますか
WRL に基づいた古い Media Extension サンプル コードがあります。これは Windows 8.1 で非常にうまく動作します。ただし、UWP に移植すると、メタデータのマージ中にエラーが報告されます。
UWP は現在 WRL をサポートしていますか?
c++11 - Windows ランタイム用の最新の C++
C++ Univiersal Windows GUI アプリを構築したいと思います。
C++/CX ではなく C++11 のみを使用したいのですが、Windows ランタイム用に最新の C++
をダウンロードしましたが、App::OnLaunched() でハードコーディングされた xaml を使用する単純なアプリケーションしかありません。VS2015 にある UWP アプリ テンプレートのような、より完全な例はありますか?
c++ - C++ ComPtr コールバックのスコープ
私は WRL を読んでいます。具体的には Callback と ComPtr を使用して非同期操作を実行しています。ただし、このように使用すると、ComPtr の有効期間について明確な答えが得られないようです。Callback は async 関数が返す情報を利用しますが、アプリケーションからの他の情報には依存しないため、その完了を待ちたくありません。例えば:
ComPtr はスマート ポインターであるため、コールバックが完了して refcount == 0 になるまでガベージ コレクションが行われないという印象を受けましたが、これは正しいですか?
c++ - C++/WRL の IVectorView のインスタンスを初期化する方法は?
C++/WRL (C++/CX ではない) を使用してSkusプロパティを取得するget_Skus()
メソッドを呼び出そうとしていますが、適切なコード例が見つかりません。そのメソッドは次のように定義されています (Visual Studio のヘッダー ファイルから取得します)。IStoreProduct
だから私がやろうとすると:
次のエラーが表示されます。
'ABI::Windows::Foundation::Collections::IVectorView': 抽象クラスをインスタンス化できません
私は比較的新しいですWRL
。誰かがそのメソッドを呼び出す方法を教えてもらえますか?