Хорошо, так долго выходные у меня в Macbook. Я начал делать загрузчик активов для 2D игровых платформ, его отлично работает в xcode, но когда я вернулся домой и попробовал и загрузил его в Windows, я получил ошибку отладки.dbgrptt.c dbghook.c Ошибка Iterator?
По существу, что происходит с первым вызовом итератора? второй - нет, но только при второй попытке вызова второго он вызовет ошибку (это в игровом цикле). Я поменял местами звонки, но тот же результат.
Программа (в отладке) завершает работу и дает мне сообщение
AssetLoadingWin.exe спровоцировало точку останова
затем указывает на следующий код в dbgrptt.c
#undef _CrtDbgBreak
/* These methods don't need a separate
wchar version. Hence they need to be compiled only once from
the original file */
_CRTIMP void _cdecl _CrtDbgBreak(
void
)
{
DebugBreak(); // <-- breakpoint here
}
, если я позволю продолжить, я получаю следующее сообщение
Microsoft Visual Studio C Runtime В библиотеке обнаружена фатальная ошибка в AssetLoadingWin.exe.
Press Break для отладки программы или Продолжайте заканчивать программу.
, который, в свою очередь, указует на код в dbghook.c
__declspec(noinline)
void __cdecl _CRT_DEBUGGER_HOOK(int _Reserved)
{
/* assign 0 to _debugger_hook_dummy so that the function is not folded in retail */
(_Reserved);
_debugger_hook_dummy = 0;
}
После многих контрольных точек Ее была сужен до итератора вызова метода.
// line 347 in the pastie.
void libImageDraw(GraphicIt &gfxIt, GraphicOptions &opts) {
gfxIt->second->draw(opts.x, opts.y, opts.z); line
}
Спасибо за любые указатели.
Полный исходный код
ах спасибо, стирание петли в конце работал. – 2010-08-31 11:34:52