dynamic_castに問題があります。プロジェクトをコンパイルし、デバッグモードですべてをテストしてから、リリースモードでコンパイルしてみました。現在、/ o2になっている最適化パラメーターを除いてデバッグモードからすべての構成をコピーしました(デバッグ中は/ odとして設定しました)。プロジェクトはコンパイルされましたが、リソースのロードを開始すると、ここのコードで例外が発生しました:
for(int j = 1; j < i->second->getParametersNumber();j++)
{
CCTMXTiledMap* temp = CCTMXTiledMap::tiledMapWithTMXFile(i->second->As<string>(j).c_str());
CCTMXLayer* ret = NULL;
for(NSMutableArray<CCNode*>::NSMutableArrayIterator l=temp->getChildren()->begin();!ret && l!=temp->getChildren()->end();l++)
ret = dynamic_cast<CCTMXLayer*> (*l);
t1.first = ret;
templates[i->first].second.push_back(t1);
templates[i->first].second.back().first->retain();
}
コードは何も変更されていません。デバッガーをチェックインすると、クラス内のすべての変数が本来あるべき姿になりますが、動的キャストはstd::__non_rtti_objectをスローします。私はそれを間違って何をしていますか?cocos2d-xを使用していますが、そのタグを追加するのに十分な評判がありませんでした。