我最近安装了 Visual Studio 2012 并尝试重新编译一个现有项目,该项目是一个混合模式 C++ 应用程序,带有一点 C++/cli 用于访问应用程序所需的 .net 程序集。
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;
}