3

Visual Studio 2012 で作成された Windows Phone 8 アプリ - Visual C++ の下の「Windows Phone Direct3D アプリ (ネイティブのみ)」プロジェクトと、ターゲット プラットフォーム「Windows Phone」を持つ Visual C# グループの下の「Windows Phone クラス ライブラリ」プロジェクトで作成されたライブラリがあります。 OS8.0」。必要なのは、C++ コードで C# dll を使用することだけです。制限は、アプリケーションのアーキテクチャを変更できないことです。そのため、メイン エントリ ポイントは C++ プロジェクトにある必要があり、ここから C# で記述されたコードを呼び出す必要があります。

C++ アプリで C# dll を参照しようとすると、このエラーが発生します

2 つのプロジェクトが異なるランタイムを対象としているため、[dllname] への参照を追加できません。

http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj714080(v=vs.105).aspxに基づいて、Visual C++ "Windows Phone Runtimeコンポーネント」ですが、ランタイム コンポーネントへの参照を追加しようとすると、同じエラーが発生します。一部のプロジェクト設定を変更しようとしましたが、何も機能しませんでした。Web で見つけたすべてのサンプルとデモで、WP8 のメイン エントリ ポイントは常に C# です。Windows ストア アプリに関するいくつかのヒントのみが、C++ から C# を使用できる可能性があることを示しているようですが、wp8 での私のシナリオが可能または不可能であると明示的に述べている参照は見つかりません。

解決策や提案を共有してくれた人に前もって感謝します。

4

2 に答える 2

1

遅い答えですが、短い話はあなたができないということです。Windows 8 では、C# WinRT dll は完全な WinRT dll であり、任意のフレームワーク (WinJS、ネイティブなど) で使用できますが、電話では使用できません。

電話では、C# は (C++ dll から) C++ WinRT オブジェクトを使用できますが、その逆はできません。C# dll で C++ dll を呼び出して関数ポインターを渡すことで、トリッキーを作成できますが、それだけです。

于 2013-05-20T05:47:03.547 に答える
1

私はこれが好きです: http://www.developer.nokia.com/Community/Wiki/C%2B%2B_support_from_Windows_Phone_8 . C# で参照および実装できるインターフェイスを .winmd C++ 側のメタデータに挿入できます。デリゲートを使用するよりもはるかにクリーンです...それでもC#から開始する必要があります...

于 2013-05-27T13:22:21.367 に答える