C++ OGRE不存在合适的转换函数

C++ OGRE不存在合适的转换函数,c++,visual-studio,compiler-errors,ogre,C++,Visual Studio,Compiler Errors,Ogre,我很难在Visual Studio 2013中编译应用程序。我已经解决了很多错误,但我找不到解决最后一个错误的方法 这是: void Application::setupRenderSystem() { mState->dumpValues(); String val = mState->getStringValue("renderSystem"); RenderSystemList *renderSystems = mRoot->getAvailableRenderers(

我很难在Visual Studio 2013中编译应用程序。我已经解决了很多错误,但我找不到解决最后一个错误的方法

这是:

void Application::setupRenderSystem() {
mState->dumpValues();

String val = mState->getStringValue("renderSystem");
RenderSystemList *renderSystems = mRoot->getAvailableRenderers();
RenderSystemList::iterator r_it;    

bool renderSystemFound = false;
for (r_it = renderSystems->begin(); r_it != renderSystems->end(); r_it++) {
    RenderSystem *tmp = *r_it;
    std::string rName(tmp->getName());

    // returns -1 if string not found
    if ((int)rName.find(val) >= 0) {
        mRoot->setRenderSystem(*r_it);
        renderSystemFound = true;
        break;
    }
}        
if (!renderSystemFound) {
    OGRE_EXCEPT(0, "Specified render system (" + val + ") not found, exiting...", "Application")
}
}

Visual Studio指示行RenderSystemList*renderSystems=mRoot->getAvailableRenderers;问题出在哪里,尤其是mRoot

以下是我得到的错误: 错误C2440:“初始化”:无法从“const Ogre::RenderSystemList”转换为“Ogre::RenderSystemList*”

Ogre API显示:

const RenderSystemList &    getAvailableRenderers (void)
因此,它返回一个常量引用,而不是指针。 像这样修改代码

const RenderSystemList &renderSystems = mRoot->getAvailableRenderers();
getAvailableRenderers方法不返回指向RenderSystemList的指针。您希望将该值存储在对RenderSystemList的引用中:


谢谢。现在的问题是renderSystems->begin和renderSystems->end应该是指针。下面是我得到的错误:表达式必须具有指针类型RenderSystems不是指针。你用。而不是->。->运算符仅用于指针。
RenderSystemList const& renderSystems = mRoot->getAvailableRenderers();