Вылет при проектировании визуального приложения (Windows7 x32, C, GTK+) - C (СИ)
Формулировка задачи:
Разбираюсь с библиотекой gtk+ (версия 2.24.10). Пишу в CodeBlocks(12.11), в windows7 x32
Встретил следующую проблему.
Нужно было рисовать последовательные числа. Использую gdk_draw_layout().
Для панго layouta каждую в каждую итерацию цикла менялся текст, получался он таким образом:
Программа делает то, что нужно - рисуются эти числа, но потом программа вылетает(прекращена работа программы)
Вот подробности:
Сигнатура проблемы:
Имя события проблемы: APPCRASH
Имя приложения: Grapher.exe
Версия приложения: 0.0.0.0
Отметка времени приложения: 51eabefc
Имя модуля с ошибкой: libgobject-2.0-0.dll
Версия модуля с ошибкой: 2.28.8.0
Отметка времени модуля с ошибкой: 4e2537c6
Код исключения: c0000005
Смещение исключения: 00025507
Версия ОС: 6.1.7601.2.1.0.256.1
Код языка: 1049
Дополнительные сведения 1: 0a9e
Дополнительные сведения 2: 0a9e372d3b4ad19135b953a78882e789
Дополнительные сведения 3: 0a9e
Дополнительные сведения 4: 0a9e372d3b4ad19135b953a78882e789
Ознакомьтесь с заявлением о конфиденциальности в Интернете:
http://go.microsoft.com/fwlink/?linkid=104288&clcid=0x0419
Если заявление о конфиденциальности в Интернете недоступно, ознакомьтесь с его локальным вариантом:
C:\Windows\system32\ru-RU\erofflps.txt
Дебаг выявил, что проблема в том, что появляется сигнал SIGSEGV на строке gtk_main() в функции main()
Характерно то, что если вместо строки itoa (i,temp,10); кода вставить просто присвоение temp строковой константы - ничего не вылетает, все работает
При использовании Sprintf() все так же как с itoa().
Неужели дело в том, что Windows плохо "общается" с GTK+?
Может можно как то исправить?
Если нет, подскажите годные способы как еще преобразовать символьный массив в число(
...... PangoLayout* a; a= gtk_widget_create_pango_layout(...,"0"); ...... char* temp; for (i=-10, i< 50, i++) { ...... itoa (i,temp,10); pango_layout_set_text(a,temp,5); gdk_draw_layout(.....,a) ...... }
Решение задачи: «Вылет при проектировании визуального приложения (Windows7 x32, C, GTK+)»
textual
Листинг программы
char temp[256]; // ну или поменьше, но чтобы гарантированно поместилось число + 1 символ
Объяснение кода листинга программы
- Объявляется массив temp типа char с размером 256 байт.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д