GTK + не поддерживает ресурсы Windows (по крайней мере, насколько я могу судить). Вместо этого он использует собственный межплатформенный формат ресурсов, GResource. Самый простой способ работы с встроенными ресурсами - использовать это. Он несовместим с редакторами ресурсов Windows и требует генерации дополнительного исходного файла C, но он должен работать нормально, пока вы используете GLib или GTK +. У вас должен быть компилятор GResource как часть вашей установки GTK + (но я не уверен на 100%). И если вы пройдете этот маршрут, вы сможете продолжать использовать PNG-файлы. (Я не знаю, как использовать PNG-файлы с ресурсами Windows, если это возможно.)
Если вы настаиваете на использовании ресурсов Windows, тем не менее, я могу представить один из возможных способов сделать это, хотя это isn «т только один: использовать функции API ресурсов Windows для загрузки HBITMAP
с вашего ресурса, вызовите GetObject()
, чтобы получить BITMAP
структуру из HBITMAP
, а затем вызвать gdk_pixbuf_new_from_data()
с соответствующими полями из BITMAP
структуры в качестве параметров (rowstride
== BITMAP.bmWidthBytes
). Удачи!
Какой формат данных является самим ресурсом изображения? – andlabs
@andlabs хорошо, png пока. Может конвертировать в bmp или любой другой, без проблем. –