Форум 3DNews
Вернуться   Форум 3DNews > Программирование > Программирование

Ответ Создать новую тему
Опции темы Опции просмотра
Непрочитано 10.07.2007, 15:09   [включить плавающее окно]   #1
Эрфеа
Мужской Опытный
Автор темы
 
Аватар для Эрфеа
 
Регистрация: 15.07.2006
Gtk+

Кто в нём работает подскажите плиз
Вот функция:

43 void enter_callback (GtkWidget *widget, GtkWidget *entry)
44 {
45 gchar *entry_text;
46 entry_text=gtk_entry_get_text(GTK_ENTRY(entry));
47 }


Вот что гонит компилятор:
main.c:46: error: invalid conversion from `const gchar*' to `gchar*'

Вопрос где у меня скривили руки?!
Заранее благодарю
__________________
Aik: Это линукс виноват. У меня где-то в начале года Дебиан тоже БП сжег. И тоже убил клавиатуру и звуковуху. А еще винт и мышь.
wherecat: .. Выжрал всю водку, наблевал в кактус и побрил кота.
Эрфеа вне форума  
Конфигурация ПК
Ответить с цитированием
Непрочитано 10.07.2007, 18:19   [включить плавающее окно]   #2
hellcitizen
Мужской Продвинутый
 
Аватар для hellcitizen
 
Регистрация: 15.11.2005
Адрес: Москва
Функция возвращает const gchar*, а у тебя переменная объявлена как просто gchar*. Надо либо исправить тип entry_text, либо привести возврат функции..
hellcitizen вне форума  
Конфигурация ПК
Ответить с цитированием
Непрочитано 11.07.2007, 00:30   [включить плавающее окно]   #3
Эрфеа
Мужской Опытный
Автор темы
 
Аватар для Эрфеа
 
Регистрация: 15.07.2006
Цитата (hellcitizen) »
Функция возвращает const gchar*, а у тебя переменная объявлена как просто gchar*. Надо либо исправить тип entry_text, либо привести возврат функции..
вот результат смены типа переменной ентри_текст на конст чар(текст из дебагера, у функции имя здесь func(поменял)):
#0 0x63a60564 libgobject-2!g_type_check_instance_cast (??:??)
#1 0x004013d8 func (??:??)
#2 0x63a438c6 libgobject-2!g_closure_invoke (??:??)
#3 0x63a56384 libgobject-2!g_signal_has_handler_pending (??:??)
#4 0x63a570aa libgobject-2!g_signal_emit_valist (??:??)
#5 0x63a572ba libgobject-2!g_signal_emit (??:??)
#6 0x617a0ffe libgtk-win32-2!gtk_button_get_alignment (??:??)
#7 0x63a438c6 libgobject-2!g_closure_invoke (??:??)
#8 0x63a55dce libgobject-2!g_signal_has_handler_pending (??:??)
#9 0x63a570aa libgobject-2!g_signal_emit_valist (??:??)
#10 0x63a572ba libgobject-2!g_signal_emit (??:??)
#11 0x6179fc33 libgtk-win32-2!gtk_button_set_relief (??:??)
#12 0x61886cf1 libgtk-win32-2!gtk_marshal_VOID__UINT_STRING (??:??)
#13 0x63a438c6 libgobject-2!g_closure_invoke (??:??)
#14 0x63a55fb8 libgobject-2!g_signal_has_handler_pending (??:??)
#15 0x63a56e17 libgobject-2!g_signal_emit_valist (??:??)
#16 0x63a572ba libgobject-2!g_signal_emit (??:??)
#17 0x619d1427 libgtk-win32-2!gtk_widget_activate (??:??)
#18 0x619d1769 libgtk-win32-2!gtk_widget_event (??:??)
#19 0x6188522c libgtk-win32-2!gtk_propagate_event (??:??)
#20 0x61885569 libgtk-win32-2!gtk_main_do_event (??:??)
#21 0x6c373bf0 libgdk-win32-2!gdk_event_get_graphics_expose (??:??)
#22 0x685e0e8a libglib-2!g_source_remove_poll (??:??)
#23 0x685e2dcf libglib-2!g_main_context_acquire (??:??)
#24 0x685e2f99 libglib-2!g_main_loop_run (??:??)
#25 0x61884968 libgtk-win32-2!gtk_main (??:??)
#26 0x004017dd main (??:??)

кстати пример моей функции взят в прогу из документации, надо думать тут проблема гте-то глубоко кроется, компилятор: gcc, среда: code::blocks
__________________
Aik: Это линукс виноват. У меня где-то в начале года Дебиан тоже БП сжег. И тоже убил клавиатуру и звуковуху. А еще винт и мышь.
wherecat: .. Выжрал всю водку, наблевал в кактус и побрил кота.
Эрфеа вне форума  
Конфигурация ПК
Ответить с цитированием
Непрочитано 11.07.2007, 14:23   [включить плавающее окно]   #4
Phodopus
Мужской Продвинутый
 
Регистрация: 05.10.2005
Адрес: Санкт-Петербург
Ничего не понимаю в GTK+ и еще меньше в C++ но..
Функция возвращает указатель на строку, которую сама и создает. Есть резон предположить что какая-нибудь следующая функция GTK использует байтики этой строчки по-другому (глупо, конечно, но так например было в WinSock, и опять же, я не знаком с GTK). Таким образом GTK дает тебе указателя как бы говоря: срочно скопируй строку по этому указателю куда-нибудь к себе, если она тебе нужна! Так что решением может быть:
Код:
gchar entry_text[256];
strcpy(entry_text, gtk_entry_get_text(GTK_ENTRY(entry)));
ПыСы: только предположение, ибо не знаком с предметом..
Phodopus вне форума  
Ответить с цитированием
Непрочитано 12.07.2007, 14:43   [включить плавающее окно]   #5
Sanya
Мужской Опытный
 
Аватар для Sanya
 
Регистрация: 22.03.2003
Адрес: Апатиты
Эрфеа попробуй так:
const gchar *entry_text = gtk_entry_get_text(GTK_ENTRY(entry));

или так:
entry_text=(gchar*)gtk_entry_get_text(GTK_ENTRY(entry));
__________________
Лечить и судить умеют и могут все, а вот рассчитать несущую балку?
Sanya вне форума  
Конфигурация ПК
Ответить с цитированием
Непрочитано 15.07.2007, 19:14   [включить плавающее окно]   #6
Эрфеа
Мужской Опытный
Автор темы
 
Аватар для Эрфеа
 
Регистрация: 15.07.2006
Всё безролезняк, это либо компилятор либо порто гтк кривой
__________________
Aik: Это линукс виноват. У меня где-то в начале года Дебиан тоже БП сжег. И тоже убил клавиатуру и звуковуху. А еще винт и мышь.
wherecat: .. Выжрал всю водку, наблевал в кактус и побрил кота.
Эрфеа вне форума  
Конфигурация ПК
Ответить с цитированием
Ответ Создать новую тему

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 03:35. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 2000-2017 3DNews. All Rights Reserved.
Администрация 3DNews требует соблюдения на форуме правил и законов РФ
Серверы размещены в Hostkey