2

ManagedWrapper という名前のプロジェクトがあります。これは Managed C++ であり、DLL としてビルドされます。

マネージ C++ であり、DLL としてビルドされる MyManagedTest という 2 番目のプロジェクトがあります。

ManagedWrapper からのヘッダーを MyManagedTest に含めようとすると、リンカー LNK2020 エラーが発生します。次に、「フレームワークと参照」に ManagedWrapper への参照を追加しますが、これにより、ManagedWrapper のクラスが既に定義されているというコンパイラ エラーが発生します (ヘッダー ファイルを含めたため、MyManagedTest でそれらを再度定義しようとしているように見えます)、エラー C2011。

クラスを ManagedWrapper から MyManagedTest に含める適切な方法は何ですか?

ありがとう。

4

1 に答える 1

1

#includeネイティブ クラスの宣言と#importマネージド クラスの宣言に使用する必要があります。参照の追加は と同じ#importです。

ところで、「Managed C++」は、VS2008 で .NET で C++ を使用するための正しい名前ではありません。その機能は C++/CLI です。以前のバージョンの Visual C++ には、「Managed C++」と呼ばれることが多く、決して使用すべきではない「Managed Extensions for C++」と呼ばれる非常にバグのある構文がありました。

于 2010-08-02T05:01:33.457 に答える