複数のライブラリ (SDL、Boost、Chipmunk、Lua、Glew) を使用する大規模なプログラムに取り組んでいます
このコードをコンストラクター関数の特定のクラスに追加するときはいつでも。
std::ifstream is;
is.open ("Sprites/spriteList.json");// Causes Error
boost::property_tree::ptree pt;
boost::property_tree::json_parser::read_json(is,pt);// Causes Error
Visual Studio は、このコードを指すエラー ヒープ エラーを作成します。
extern "C" _CRTIMP int __cdecl _CrtIsValidHeapPointer(
const void * pUserData
)
{
if (!pUserData)
return FALSE;
if (!_CrtIsValidPointer(pHdr(pUserData), sizeof(_CrtMemBlockHeader), FALSE))
return FALSE;
return HeapValidate( _crtheap, 0, pHdr(pUserData) );
}
ただし、デバッグモードでのみ、リリース時にエラーが発生せず、正常に実行されます。このエラーは、コードをブロックに配置しても実行されないため、発生します。
if (false) {
std::ifstream is;
is.open ("Sprites/spriteList.json");
boost::property_tree::ptree pt;
boost::property_tree::json_parser::read_json(is,pt);
}
誰かが何が起こっているのかをゆっくり説明するか、それを修正するためのリンクを教えてもらえますか?