[英]OGRE No suitable conversion function exists
I'm having a hard time trying to get an app to compile in Visual Studio 2013. I've solved a good amount of errors but I can't find a solution for the last one. 我很难在Visual Studio 2013中尝试编译应用程序。我已经解决了很多错误,但是找不到最后一个解决方案。
here it is: 这里是:
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 indicates that the line RenderSystemList *renderSystems = mRoot->getAvailableRenderers();
Visual Studio指出该行RenderSystemList *renderSystems = mRoot->getAvailableRenderers();
is the problem, especially mRoot
是问题所在,尤其是mRoot
Here is the error I get: error C2440: 'initializing' : cannot convert from 'const Ogre::RenderSystemList' to 'Ogre::RenderSystemList *' 这是我得到的错误: 错误C2440:“正在初始化”:无法从“ const Ogre :: RenderSystemList”转换为“ Ogre :: RenderSystemList *”
The Ogre API says: Ogre API说:
const RenderSystemList & getAvailableRenderers (void)
So it returns a const reference and not a pointer. 因此,它返回一个const引用而不是一个指针。 Modify your code like this 像这样修改您的代码
const RenderSystemList &renderSystems = mRoot->getAvailableRenderers();
The getAvailableRenderers
method doesn't return a pointer to a RenderSystemList
. getAvailableRenderers
方法不会返回指向RenderSystemList
的指针。 You'd want to have the value stored in a reference to a RenderSystemList
: 您希望将值存储在对RenderSystemList
的引用中:
RenderSystemList const& renderSystems = mRoot->getAvailableRenderers();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.