Bonjours, je me suis m'y a apprendre GTK+, mais voila arrivé à l'ouverture de fichier windows fait un rapport d'érreur, et cela quoi que je fasse (que j'annule ou valide)...
Merci de m'aider a trouver pourquoi mon programme fait un rapport d'érreur.
Mon code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
#include <stdlib.h>
#include <gtk/gtk.h>
#include <FMOD/fmod.h>
 
static GtkWidget *fenetrePrincipal, *box1, *barMenu, *menu, *itemMenu, *objetMenu, *barEtat, *box2;
static FSOUND_STREAM *musique = NULL;
static GtkWidget *pFileSelection;
 
void choixMusique(GtkWidget *pWidget, gpointer data);
 
int main(int argc, char *argv[])
{
    guint iContextId1, iContextId2;
 
    gtk_init(&argc, &argv);
    FSOUND_Init(44100, 32, 0);//Initialisation FMod
 
    //La fenetre
    fenetrePrincipal = gtk_window_new(GTK_WINDOW_TOPLEVEL);
    gtk_window_set_title(GTK_WINDOW(fenetrePrincipal), "Agenda");
    gtk_window_set_position(GTK_WINDOW(fenetrePrincipal), GTK_WIN_POS_CENTER);
    gtk_window_set_default_size(GTK_WINDOW(fenetrePrincipal), 400, 200);
    g_signal_connect(G_OBJECT(fenetrePrincipal), "delete-event", G_CALLBACK(gtk_main_quit), NULL);
    //
 
    //La box pour tout contenir
    box1 = gtk_vbox_new(FALSE, 0);
    gtk_container_add(GTK_CONTAINER(fenetrePrincipal), box1);
    //
 
    //bare d'etat
    barEtat = gtk_statusbar_new();
    iContextId1 = gtk_statusbar_get_context_id(GTK_STATUSBAR(barEtat), "ExitMsg");
    iContextId2 = gtk_statusbar_get_context_id(GTK_STATUSBAR(barEtat), "AboutMsg");
    //
 
    //////////////////////////Le menu du haut/////////////////////
    //La bar de menu
    barMenu = gtk_menu_bar_new();
    //Premier menu
    //Le menu en lui meme
    menu = gtk_menu_new();
    //Crétation des sous dossier dans le menu
    objetMenu = gtk_menu_item_new_with_label("Ouvrir une musique");
    gtk_menu_shell_append(GTK_MENU_SHELL(menu), objetMenu);
    g_signal_connect(G_OBJECT(objetMenu), "activate", G_CALLBACK(choixMusique), NULL);
    //Les premier truc du menu
    itemMenu = gtk_menu_item_new_with_label("Fichier");
    gtk_menu_item_set_submenu(GTK_MENU_ITEM(itemMenu), menu);
    //
    gtk_menu_shell_append(GTK_MENU_SHELL(barMenu), itemMenu);
    //
    //Second menu
    //Le menu en lui meme
    menu = gtk_menu_new();
    //Création des sous dossier dans le menu
    objetMenu = gtk_menu_item_new_with_label("Aide...");
    gtk_menu_shell_append(GTK_MENU_SHELL(menu), objetMenu);
    //Les premier truc du menu
    itemMenu = gtk_menu_item_new_with_label("?");
    gtk_menu_item_set_submenu(GTK_MENU_ITEM(itemMenu), menu);
    //
    gtk_menu_shell_append(GTK_MENU_SHELL(barMenu), itemMenu);
    ///
    ///////////////////////////////////    
    gtk_box_pack_start(GTK_BOX(box1), barMenu, FALSE, FALSE, 0);
    gtk_box_pack_end(GTK_BOX(box1), barEtat, FALSE, FALSE, 0);
 
    //Box 2
    box2 = gtk_hbox_new(TRUE, 0);
    gtk_box_pack_start(GTK_BOX(box1), box2, FALSE, FALSE, 0);
    //
 
    gtk_widget_show_all(fenetrePrincipal);
 
    gtk_main();
    return EXIT_SUCCESS;
}
void choixMusique(GtkWidget *pWidget, gpointer data)
{
    GtkWidget *pParent;
    gchar *sChemin = NULL;
 
    pParent = GTK_WIDGET(data);
 
    /* Creation de la fenetre de selection */
    pFileSelection = gtk_file_chooser_dialog_new("Ouvrir...",
        GTK_WINDOW(pParent),
        GTK_FILE_CHOOSER_ACTION_OPEN,
        GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
        GTK_STOCK_OPEN, GTK_RESPONSE_OK,
        NULL);
    /* On limite les actions a cette fenetre */
    gtk_window_set_modal(GTK_WINDOW(pFileSelection), TRUE);
 
    /* Affichage fenetre */
    switch(gtk_dialog_run(GTK_DIALOG(pFileSelection)))
    {
        case GTK_RESPONSE_OK:
            /* Recuperation du chemin */
            sChemin = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(pFileSelection));
 
            musique = FSOUND_Stream_Open(sChemin, 0, 0, 0);
            g_free(sChemin);
            break;
        default:
            break;
    }
    gtk_widget_destroy(pFileSelection);
}