2011-07-26 17 views
4

私は3DsMaxのためのプラグインを開発しています。つまり、CLR以外のC++です。私の質問は、このプラグインで.NETアセンブリを使用する可能性があるかどうかです。非CLRプログラムで.NETアセンブリを使用する可能性はありますか?

ありがとうございます。

よろしくお願いします。

+0

どんな使い方ですか? http://www.la-solutions.co.uk/content/DotNet/DotNet-CPlusPlusClients.htm –

答えて

4

はい、ただし、アプリケーション内でCLRをホストする必要があります。

などこれは、ホストのASP.NETのウェブサイトをIIS方法で、SQLServerのは、CLR機能することができますどのように

ここAPIをホスティングしているCLRを見てみましょう:http://msdn.microsoft.com/en-us/magazine/cc163567.aspx

+0

TY、これは私の質問に完全に答えると思います。 :) –

+0

MSDN Magazineのリンクが死んでいます。私は新しいURLを見つけることができませんでしたが、代わりにいくつかのドキュメントへのリンクがあります:https://docs.microsoft.com/en-us/dotnet/framework/unmanaged-api/hosting/index – AndyJ

3

あなたは確かにCOM-を通してそれを行うことができますinterop。

.NETアセンブリは、COMインターフェイスを公開しているとみなし、COMサービスを使用できるすべてのネイティブプロセスからアクセスできます。

+0

NETコードを別のプロセスで実行するには、自己完結型のCLRホスティングを推奨します。 –

+0

本当にですか?それは必要であることを使用しなかったし、私はそれが今であると言っている参照を見つけるのに苦労しています。 –

3

結論として、.Netアセンブリを使用する場合は、CLRを実行する必要があります。それ以外の場合はネイティブプロセス

  • 別のネット・プロセスでアセンブリを実行中にCLRをホスティングしてCOM相互運用機能を介して通信

    • 含むネイティブプロセスでこれを実現するためのさまざまな方法があります
  • +0

    私はCOM Interopを使用するために別のプロセスは必要ないと思います。 VB6-to-.NETの良い日は間違いありませんでした。 –

    +0

    @ Steve COM相互運用のための別個のプロセスは必要ありませんが、別のプロセスを使用する場合COMはプロセス間の通信チャネルになります – JaredPar

    +0

    OK、それに同意します;-)私は瞬間(CPUアーキテクチャが同じであれば)管理されていないコードからそれらを使用するために、管理コンポーネントをプロセス外で実行する必要はありませんでした。 –

    関連する問題