問題タブ [c++-cx]
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.
windows - 静的ライブラリ内で C++/Cx を使用できますか (Metro Style)
ネイティブ SDK を Windows RT に移植しようとしていますが、不足している機能を実装してレジストリ アクセスをエミュレートしたいので、静的ライブラリを作成しました ([ファイル] -> [新規] -> [プロジェクト...] -> [静的ライブラリ] ( Metro スタイル アプリ) で、次のように関数を宣言しました。
ただし、コンパイルしようとすると、次のエラーが発生します。
Windows ランタイム拡張機能の消費 ( /ZW
) が有効になっていることを確認したので (既定では)、静的ライブラリ内で C++/CX を使用できるかどうか疑問に思っています。
windows-runtime - IIterableを反復処理するにはどうすればよいですかC ++ / CXで?
(これは、「C ++ / CXのC#Windowsランタイムコンポーネントから返されたコレクションを反復処理するにはどうすればよいですか?」と表現することもできます。
で使用しようとしstd::for_each
ましたIIterable<T>
が、次のコンパイル時エラーが発生します
エラーC2664:'std :: begin':パラメータ1を'my_collection_type^'から'Platform :: String ^'に変換できません。ユーザー定義の変換演算子が使用できないか、指定された型が無関係です。変換には、reinterpret_cast、Cスタイルのキャスト、または関数スタイルのキャストが必要です
コレクションを反復処理するにはどうすればよいですか?
c# - C# ライブラリ ビルド エラー WMC1006 を含む c++ メトロ アプリ
メトロアプリを始めたばかりです。メイン アプリケーションは、C++ メトロ アプリです。アプリケーションは正常にビルドおよび実行されます。
ソリューションに ac# ライブラリを追加すると、すべてが正常にビルドされます。
C++ アプリケーションから C# ライブラリを参照すると、次のエラーが発生してビルドされません。
エラー WMC1006: アセンブリまたは Windows メタデータ ファイル 'System.Runtime.dll' を解決できません
エラー EMC9999: タイプ ユニバースはアセンブリを解決できません: System.Runtim、バージョン.......
何が起こっているのですか?C# クラス ライブラリへの参照を追加していません。バニラメトロライブラリです。
ありがとう!エリック
multithreading - 静的 C++ ライブラリを使用する Windows 8 WinRT アプリケーションには、vccorlibd のシンボルが複数定義されています。
いくつかの C++ スタティック ライブラリと 1 つの WinRT ネイティブ スタティック C++ ライブラリを含む Windows 8 用の WinRT アプリケーションがあります。スレッドモデルライブラリに関連する複数定義されたシンボルについて不平を言っているため、リンクしていません:
MTA スレッド モデル ライブラリ (tmmta) とデフォルトのスレッド モデル ライブラリ (tmdefault) をリンクしようとしていることに注意してください。
これを変更するためのプロジェクト プロパティの設定が見つかりません。私が見つけた最も近いものは CLR スレッド属性ですが、この設定を変更しても効果はありません。ソリューションのどのサブプロジェクトがどのスレッド モデルを使用しているかわかりません。
スレッド モデルの設定を表示および変更する方法と場所を教えてください。
ありがとう!
xaml - WinRTXAMLでハードコードされたPCH名
WinRTプロジェクト、C ++/CX。XAMLファイルをコンパイルすると、生成されたコードファイルには
#include "pch.h"
ライン。stdafx.h
レガシーコードの理由から、プリコンパイラヘッダーを別の方法で呼び出す必要があります。プロジェクトのプロパティで変更すると、C ++ソースには影響しますが、XAMLコンパイラには影響しません。それでもpch.h
行が出力されます。プロジェクトのプロパティのどこにもXAMLコンパイラ設定が見つかりませんでした。
XAMLコンパイラが想定するPCH名を変更するにはどうすればよいですか?
visual-c++ - 再利用可能なクラス-事前定義の代わりに「abstract」を使用
単一の基本クラスから継承する複数のクラスが存在するアプリケーションを構築しています。私がこの宣言をしているとしましょう:
私はそれを実装するいくつかのクラスを持っています、例えば:
アプリケーションの別の部分では、の潜在的な実装用のコンテナーが必要なWorkScreenBase
ので、次を使用しようとしています。
ただし、これは違法と思われます。問題に取り組むための最良の方法は何でしょうか?
更新:を使用することもできますがMainScreen^ myCurrentScreen
、柔軟性の理由から、基本クラスを参照ポイントとして使用したいと思います。
c++ - Metro C++ でコンテンツから StorageFile^ に画像をロードする
共有チャームを使用して Windows 8 Metro C++ アプリケーションで画像を共有しようとしています。そのためには、最初にイメージを StorageFile^ にロードする必要があります。次のようになるはずです。
imageFile
ヘッダーファイルで定義されている場所
この実際のコードは、この例外をスローします
これは非常に些細なことのように思えますが、Metro での共有に関するドキュメントはほとんどなく、FilePicker を使用して共有を行う方法を示す唯一の Microsoft の例があります。
誰かがそれを正しく行う方法を知っていれば、とても感謝しています。
c++ - C ++の_In_とは何ですか?
私はこれをかなり検索しましたが、役立つ結果は得られませんでした。
私は現在、Windows 8 Metro用の単純なDirextXゲームをプログラムしようとしていますが_In_
、かなり多くのことに遭遇しました。私はそれが何であるか疑問に思っています。
また、私は奇妙だと思っ^
たポインタとしての使用をたくさん見ました。*
これに加えて、一部のクラスにはのインターフェイスがありますref class MyClass
。これは、C#の読みやすさのためだと思います。
とにかく、どんな助けも素晴らしいでしょう。
visual-studio - Doxygen は C++/CX 構文をサポートしていますか?
Doxygen は、一部のC++/CX構文構造 (Microsoft が Windows 8 開発用に導入した新しい C++ 拡張機能) によって混乱しているようです。これは既知の問題ですか? 動作させるためのパッチはありますか? または、使用するより良いドキュメント システムですか? (問題のコード ベースは、Microsoft 以外のプラットフォームでも実行されることに注意してください。)
directx - 非同期メソッドで task.wait() または task.get() を呼び出す WinRT コンポーネントを使用する C# XAML Metro アプリで、未処理の例外 0xc0000409 がスローされる
私は最近 Windows 8 で多くの実験を行っており、C++/CX で記述された WinRT コンポーネントを使用して C# XAML Metro スタイル アプリを記述し、パフォーマンスを向上させ、C# では利用できない機能、特に DirectX を使用しています。
WinRT コンポーネントでアプリ パッケージからリソースを読み込んでいるときに、アプリが次のメッセージをスローしました。
TestResources.exe の 0x0fd58ae3 (MSVCR110D.dll) で未処理の例外: 0xC0000409: 0xc0000409。
新しい StorageFile API (Windows::Storage::StorageFile::GetFileFromApplicationUriAsync は、ファイルの内容を読み取るための他の呼び出しにチェーンされています) への非同期呼び出しを行い、concurrency::task.get() を使用して結果のタスク チェーンを同期しようとしていました。
機能していないようでした。concurrency::task.get() または concurrency::task.wait() を呼び出さなかった場合、問題は発生しませんでしたが、DirectX コードの記述方法が原因で結果を同期的に取得する必要がありました。