Как настроить gtk+ 2.24 в Visual Studio 2012

как настроить GTK+ 2.24 в Visual Studio 2012? Я подумал, что будет достаточно выполнить те же действия, что и для настройки GTK+ 2.24 в Visual Studio 2010 ( Как настроить gtk в Visual Studio 2010 ).

#include <gtk-2.0\gtk\gtk.h>

int main(int argc, char* argv[])
{
   GtkWidget* window = gtk_window_new(GTK_WINDOW_TOPLEVEL);

   gtk_init(&argc, &argv);

   gtk_widget_set_usize(window, 300, 200);

   g_signal_connect(G_OBJECT(window), "destroy", G_CALLBACK(gtk_main_quit), NULL);   
   gtk_window_set_title(GTK_WINDOW(window), "GTK+ with VS2010");

   gtk_widget_show(window);     

   gtk_main();   
   return 0;
}

Я был неправ, потому что даже если бы я смог собрать этот простой проект, который был предоставлен в ссылке, упомянутой ранее (я немного отредактировал его, чтобы удовлетворить требования Visual Studio, чтобы C объявлял все переменные перед любым действием), я все еще не мог запустить это - окно не появилось, и мне пришлось убить мою программу с помощью диспетчера задач, так как она потребляла 100% процессорного времени. Более того, я смог собрать и запустить простой оконный проект отсюда: http://zetcode.com/tutorials/gtktutorial/firstprograms/ .

Код:

 #include <gtk/gtk.h>

 int main( int argc, char *argv[])
 {
  GtkWidget *window;

  gtk_init(&argc, &argv);

  window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
  gtk_window_set_title(GTK_WINDOW(window), "Center");
  gtk_window_set_default_size(GTK_WINDOW(window), 230, 150);
  gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
  gtk_widget_show(window);

  g_signal_connect_swapped(G_OBJECT(window), "destroy",
  G_CALLBACK(gtk_main_quit), NULL);

  gtk_main();

  return 0;
 }

А этот ехал нормально.

Обратите внимание на заголовки: #include <gtk-2.0\gtk\gtk.h> и #include <gtk/gtk.h>. Первый принадлежит gtk+2, а второй — gtk+1.2.

Как настроить Visual Studio 2012, чтобы он мог запускать gtk+2.24?


person Benas    schedule 18.05.2014    source источник


Ответы (1)


Используйте заголовок #include <gtk/gtk.h>. Препроцессор найдет его автоматически. Если у вас заработала программа от Zetcode, то с компилятором все в порядке. Только заголовок. Кроме того, если это как-то не работает, вернитесь к исходному заголовку и удалите

  gtk_widget_set_usize(window, 300, 200); <<(edit) deprecated later on

Вместо этого используйте:

  gtk_window_set_default_size ( GTK_WINDOW (window), 400, 200 );

Отредактировано:

Я невнимательно прочитал. Моя ошибка. Поменяйте местами gtk_init() с только что созданным GtkWindow. Без предварительной инициализации Gtk ничего не обработает.

person luciomrx    schedule 19.05.2014
comment
Я изменил заголовок на gtk/gtk.h, он собирается, но затем я запускаю программу, окно не появляется, вместо этого создается новый процесс, который потребляет все процессорное время. То же самое происходит, когда я меняю gtk_widget_set_usize(window, 300, 200); в gtk_window_set_default_size ( GTK_WINDOW (окно), 400, 200 ); . - person Benas; 19.05.2014
comment
изменение заголовка на #include ‹gtk/gtk.h› и последующее редактирование кода в окне GtkWidget*; gtk_init(&argc, &argv); окно = gtk_window_new (GTK_WINDOW_TOPLEVEL); на самом деле сделал работу. Спасибо! О, и это также работает с заголовком #include ‹gtk-2.0\gtk\gtk.h›. - person Benas; 19.05.2014