托管和非托管代码错误C3699 我正在使用一个C语言和C++游戏。模型类用C#编写,层次结构存储在XML文件中。当我想用C++读取它并想构建项目时,我有一个奇怪的错误,我不知道在哪里能找到一些bug。 Error 1 error C3699: '*' : cannot use this indirection on type 'Cadet::XMLReader::Models::Obstacle' C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\xmemory0 527 1 Cadet.Game

托管和非托管代码错误C3699 我正在使用一个C语言和C++游戏。模型类用C#编写,层次结构存储在XML文件中。当我想用C++读取它并想构建项目时,我有一个奇怪的错误,我不知道在哪里能找到一些bug。 Error 1 error C3699: '*' : cannot use this indirection on type 'Cadet::XMLReader::Models::Obstacle' C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\xmemory0 527 1 Cadet.Game,c#,c++,unmanaged,managed,C#,C++,Unmanaged,Managed,这类错误在xmemory0和list文件中?它们是什么?这只发生在障碍课上,其余的都很好 这是代码的一部分 void SetupObstacles(std::list<Cadet::Game::Entities::Obstacle> &obstacles) { int size = CurrentLevel->Obstacles->Length; Cadet::XMLReader::Models::Obstacle^ curr

这类错误在
xmemory0
list
文件中?它们是什么?这只发生在障碍课上,其余的都很好

这是代码的一部分

    void SetupObstacles(std::list<Cadet::Game::Entities::Obstacle>  &obstacles)
    {
     int size = CurrentLevel->Obstacles->Length;
     Cadet::XMLReader::Models::Obstacle^ currentObstacle;
  }
void设置障碍(标准::列表和障碍)
{
int size=CurrentLevel->障碍物->长度;
学员::XMLReader::模型::障碍^当前障碍;
}

你有指向某个
障碍物的指针吗


建议某些类型(如普通属性)不能有引用类型——不能有指向它的指针。尝试改用
^

看起来
学员::游戏::实体::障碍
是一个托管类(因为您已声明
当前障碍
作为
^
的引用)。如果是这种情况,则不能直接将托管对象存储在STL容器中,如
std::list

在没有更多上下文的情况下,很难说下一步要做什么,但一个可能的解决办法是更改
设置障碍
方法:

void SetupObstacles(System::Collections::Generic::List<Cadet::Game::Entities::Obstacle>^ obstacles)
    { ... }
void设置障碍(系统::集合::通用::列表^障碍)
{ ... }

哪些部分是因为这些错误显示在xmemory0中,并且列出了项目的某些文件中没有的文件请尝试通过注释xmemory0进行构建,以便我们可以知道错误的来源problem@nsconnector如何做到这一点?你检查过这个链接吗?如果你评论下面这行,它可能会对你有帮助?学员::XMLReader::模型::障碍^当前障碍;