4

マネージ C++ インターフェイスを持つ dll を作成したいのですが、その下で動作する実際のコードはネイティブ C++ です。

現在、マネージ コードとのインターフェイスに COM (STA) を使用していますが、現在は、STA スレッドを許可しない ThreadPool を使用してモジュールを呼び出したいと考えています。MTA COM 用にモジュールを再コーディングすることは避けたいと考えています。

私は以前にこの質問をしたことがありますが、回答は基本的な質問、つまりプロジェクトのセットアップ方法に対応していないようです。私は VS2010 を使用しており、手順をレイアウトしたいと思います。マネージ ライブラリ (C++ クラス ライブラリ) から始めて、アンマネージ クラスと MFC DLL (いくつかの MFC クラスを利用していますが、最終的には解決したいと考えています) を追加して、マネージ クラスを追加しようとしました。私はそれをコンパイルすることができないようです。

誰かが私の無知をユーモアにして、プロジェクトの種類から始まる手順を明示的にレイアウトしてもらえますか?

4

1 に答える 1

4

C++/CLI 以降、Visual Studio はコンパイル時に混合モード アセンブリ (説明したように) を生成しなくなりました。「ネイティブ」C++ ビットは、検証不可能な CIL にコンパイルされます。

ただし、ネイティブ コンパイルされたアセンブリに静的ライブラリを埋め込むことは可能であり、そのネイティブ ライブラリは変更されずにマージされます。つまり、ネイティブの静的ライブラリに対して静的にリンクすると、探している混合モードのアセンブリが生成されます。

于 2011-06-08T18:41:50.663 に答える