Не обрезайте []
, и все должно быть в порядке. []
идентифицируют массив JSON, который именно то, что вам нужно, чтобы выполнять итерацию его элементов.
Вероятно, у вас уже есть догадка о том, что это такое - вы отдаете его в первом предложении
... большое, сложное приложение ...
blockquote>Похоже, что у вас где-то есть утечка ресурсов GDI. Чтобы подтвердить это, попробуйте найти в диспетчере задач объекты GDI для вашего процесса. В какой-то момент большинство операций GDI не будет выполнено для вашего приложения.
Убедитесь, что вы правильно освобождаете все дескрипторы. Обратите внимание, что для разных объектов GDI требуются разные способы освобождения объекта. Например,
GetDC
освобождаетсяReleaseDC
, ноCreateDC
освобождаетсяDeleteDC
.Вот почему интеллектуальные объекты RAII (например, интеллектуальные указатели) рекомендуются для управления ресурсами на C ++ (где освобождение управляется интеллектуальным объектом, чтобы уменьшить вероятность утечек и ошибок).
На ваше приложение может на самом деле страдать исключение, которое игнорируется. См. Microsoft KB статья 976038 .
Готов поспорить, что приложение теряет объекты GDI, а когда выделенное пространство GDI для этого процесса исчерпано, оно больше не может рисовать себя.
Вы можете проверить, так ли это в случае добавив в диспетчер задач Windows (или любой другой диспетчер процессов, такой как Process Monitor ) объекты GDI столбца и посмотрите, растет ли это число со временем.