C1189#错误:<;互斥锁>;使用/clr或/clr:pure编译时不支持 我有一个C++库,它带有托管C++类和非托管C++类,因此库是用/CLR支持编译的。我需要在非托管端进行一些线程安全锁定,但如果包括,则会出现编译器错误: C1189 #error: <mutex> is not supported when compiling with /clr or /clr:pure 使用/clr或/clr:pure编译时不支持C1189#错误:
我怎样才能解决这个问题?花了几个小时搜索,但只找到了非常旧的信息。使用Visual Studio 2017和C++ 11语言标准,< P>混合模式项目可以包括非托管C++和托管C++/CLI代码。由于在使用C1189#错误:<;互斥锁>;使用/clr或/clr:pure编译时不支持 我有一个C++库,它带有托管C++类和非托管C++类,因此库是用/CLR支持编译的。我需要在非托管端进行一些线程安全锁定,但如果包括,则会出现编译器错误: C1189 #error: <mutex> is not supported when compiling with /clr or /clr:pure 使用/clr或/clr:pure编译时不支持C1189#错误:,c++,multithreading,c++-cli,mutex,unmanaged,C++,Multithreading,C++ Cli,Mutex,Unmanaged,我怎样才能解决这个问题?花了几个小时搜索,但只找到了非常旧的信息。使用Visual Studio 2017和C++ 11语言标准,< P>混合模式项目可以包括非托管C++和托管C++/CLI代码。由于在使用/clr编译时不支持,因此需要将其移动到单独的.cpp文件集中,以便在不使用/clr的情况下编译。可以通过向项目中添加一个新的.cpp文件,然后将该特定.cpp文件的属性页/配置属性/C/C++/General/Common Language运行时支持设置从/clr更改为无(不适用于整个项目)
/clr
编译时不支持
,因此需要将其移动到单独的.cpp
文件集中,以便在不使用/clr
的情况下编译。可以通过向项目中添加一个新的.cpp
文件,然后将该特定.cpp
文件的属性页/配置属性/C/C++/General/Common Language运行时支持设置从/clr
更改为无(不适用于整个项目)
- 必须将代码移动到单独的文件集中,以便在不使用整个
的情况下进行编译。仅将代码放入使用/clr
编译的文件中的/clr
块中是行不通的#pragma unmanaged
- 如果项目使用预编译头,则必须将新文件设置为不使用预编译头,因为不应在使用vs.without
生成的对象之间共享该预编译头/clr