1

最近VisualStudio2012をインストールし、アプリに必要な.netアセンブリにアクセスするために使用される小さなC ++/cliを使用した混合モードC++アプリケーションである既存のプロジェクトを再コンパイルしてみました。

C ++ / CLI実装の一部は、ReaderWriterLockSlimクラスを使用して、複数のスレッドから辞書へのアクセスを保護します。

これはすべてコンパイルされ、VS2010で正常に動作します。ただし、VS0212および.Net 4.5にアップグレードした後、System :: Threading名前空間でReaderWriterLockSlimが見つからないため、プロジェクトはコンパイルに失敗します。

新しいC#プロジェクトを作成し、ReaderWriterLockSlimを問題なく使用できるので、インストールは問題ないと確信しています。

以下に示す新しいC++プロジェクトも失敗します。ここまたはgoogleのいずれかで、C ++/CLIユーザーのために意図的に削除されているこのクラスへの参照を見つけることができません。他の誰かが同じような経験をしたことがありますか。

#include "stdafx.h"
using namespace System::Threading;

int _tmain(int argc, _TCHAR* argv[])
{
    ReaderWriterLockSlim^ rwlock = gcnew ReaderWriterLockSlim();

    return 0;
}
4

1 に答える 1

4

このような問題が発生した場合は、クラスのMSDNライブラリの記事に注意してください。記事の上部に、クラスを使用するために必要なリファレンスアセンブリが表示されます。

アセンブリ:System.Core(System.Core.dll内)

これは、C ++/CLIプロジェクトテンプレートにデフォルトで含まれていません。プロジェクト+プロパティ、共通プロパティ、フレームワーク、および参照を使用して修正します。「参照」リストを確認します。[新しい参照の追加]ボタンをクリックし、[アセンブリ+フレームワーク]リストから[System.Core]にチェックマークを付けます。

于 2013-02-07T14:10:03.213 に答える