【发布时间】:2013-02-07 10:54:28
【问题描述】:
我最近安装了 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;
}
【问题讨论】:
-
您说您在转换为 C++/CLI 的 C++ 项目中遇到此错误。如果您从头开始创建 C++/CLI 项目会发生什么?
标签: visual-studio-2012 c++-cli readerwriterlockslim