1

dllにコンパイルしたc++clrアプリケーションがあります。C++コードのマネージドパブリックrefクラスを介していくつかのメソッドを公開しました。実際には、ネイティブのc#アプリケーションにこのdllをロードさせ、参照によってsystem :: drawing::bitmapを渡すことができました。必要なのはdllへの参照を追加することだけで、暗黙のpinvokeが原因ですべてのメソッドが公開されました。ただし、Silverlightアプリケーションにdllをロードしようとすると、すぐに問題が発生します。どうやら、使用されているc ++clr.netライブラリはSilverlightのライブラリと互換性がありません。多くのことを試しましたが、Silverlightでdllを呼び出すことができません。

どうか、これを解決する方法について誰か提案がありますか?何でも認められるでしょう!

ありがとうございました!

4

1 に答える 1

2

私が考えることができる3つの主なオプションがあります:

  1. SilverlightDLLのC++/CLRDLLのロジックを書き直します。Silverlight 5以降、 P/Invokeを使用できます。
  2. C ++ /CLRDLLを呼び出すWebサービスを作成します。SilverlightアプリはWebサービスを呼び出すことができ、WebサービスはC ++ /CLRDLLを使用できるようになります。
  3. C ++ / CLR DLLをCOMオブジェクトとして公開し、クライアントコンピューターにインストールして登録し、SilverlightのCOMサポートを使用してC++ /CLRDLLをロードします。
于 2012-04-12T01:57:04.610 に答える