2002-09-19, 16:00
  #1
Medlem
LOL. Det jag frgar undrar jag sjlvklart inte. Frgan igentligen r hur fan byter jag text p en label med GTK?
Kllkoden till programmet jag gjort finns nedan:
[code:1]#include <gtk/gtk.h>
#include <stdio.h>

void fortune (GtkWidget *widget, gpointer data, label){
char readbuf[80];
FILE *pipe_fp;
pipe_fp = popen("/usr/games/fortune", "r");
if (pipe_fp == NULL){
perror("popen");
// return(0);
}
do {
fgets(readbuf, 80, pipe_fp);
if(feof(pipe_fp)) break;
fputs(readbuf, pipe_fp);
g_print (readbuf);
gtk_label_set_text(label, readbuf);
} while(!feof(pipe_fp));
pclose(pipe_fp);

}

int main( int argc,
char *argv[] )
{
GtkWidget *window;
GtkWidget *label;
GtkWidget *box1;
GtkWidget *box2;
GtkWidget *button;

gtk_init (&argc, &argv);

window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_signal_connect (GTK_OBJECT (window), "destroy",
GTK_SIGNAL_FUNC (gtk_main_quit),
NULL);

gtk_window_set_title (GTK_WINDOW (window), "Fnster");

gtk_container_set_border_width (GTK_CONTAINER (window), 10);

// box2 = gtk_vbox_new(FALSE, 0);
box1 = gtk_vbox_new(FALSE, 0);
gtk_container_add ( GTK_CONTAINER (window), box1);

label = gtk_label_new ("Hejsan!");
gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5);
gtk_container_add ( GTK_CONTAINER (box1), label);
button = gtk_button_new_with_label ("Hejsan!");
gtk_signal_connect (GTK_OBJECT (button), "clicked", GTK_SIGNAL_FUNC (fortune), NULL);
gtk_container_add ( GTK_CONTAINER (box1), button);
// gtk_box_pack_start (GTK_BOX (box1), label, TRUE, TRUE, 5);
gtk_widget_show(button);
gtk_widget_show(label);
gtk_widget_show(box1);

gtk_widget_show(window);

gtk_main ();

return(0);
}
[/code:1]

Det r rad 17 jag vill f till :P
Labeln som skapas vid "label = gtk_label_new ("Hejsan!");" vill jag byta text p i en funktion. Hjlp mig snlla![/code]
Citera
2002-09-19, 16:25
  #2
Medlem
Re: Hur skriver man ett eget virus i Visual Basic?

Hej!
ndra fljande s skall det funka bttre:
[code:1]
void fortune (GtkWidget *widget, gpointer data, label)
till
void fortune (GtkWidget *widget, gpointer data)

gtk_label_set_text(label, readbuf);
till
gtk_label_set_text(GTK_LABEL(data), readbuf);

tk_signal_connect (GTK_OBJECT (button), "clicked", GTK_SIGNAL_FUNC (fortune), NULL);
till
gtk_signal_connect (GTK_OBJECT (button), "clicked", GTK_SIGNAL_FUNC (fortune), label);
[/code:1]
det var nog allt, hr av dig om det vllar beskymmer
Citera
2002-09-19, 18:51
  #3
Medlem
phiewwwww... sg ditt topic ante... blev nstan lite rdd att du skulle inkludera det i winamp scriptet du snackade om ngon dag p irc'n ...
Citera
2002-09-20, 12:24
  #4
Medlem
phreakeraktig hihi ) Fungerar din Winsock kontroll riktigt nr du kr XP? Jag fr "License information for this object not found". Jag mste ha Winsock fr att kunna gra mitt plugin P

jire flesh Tackar )
Koden var lite stkig, fr jag frskte fixa till det sjlv frst P
Citera
2002-09-20, 13:02
  #5
Medlem
Ny kod!!!

[code:1]#include <gtk/gtk.h>
#include <stdio.h>
#include <string.h>

void fortune (GtkWidget *widget, gpointer data){
char readbuf[80];
char *dastext;
FILE *pipe_fp;
pipe_fp = popen("/usr/games/fortune", "r");
if (pipe_fp == NULL){
perror("popen");
// return(0);
}
do {
fgets(readbuf, 80, pipe_fp);
if(feof(pipe_fp)) break;
fputs(readbuf, pipe_fp);
g_print (readbuf);
dastext = strcat(dastext, readbuf);
} while(!feof(pipe_fp));
pclose(pipe_fp);
gtk_label_set_text(GTK_LABEL(data), dastext);
}

int main( int argc,
char *argv[] )
{
GtkWidget *window;
GtkWidget *label;
GtkWidget *box1;
GtkWidget *box2;
GtkWidget *button;

gtk_init (&argc, &argv);

window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_signal_connect (GTK_OBJECT (window), "destroy",
GTK_SIGNAL_FUNC (gtk_main_quit),
NULL);

gtk_window_set_title (GTK_WINDOW (window), "Fnster");

gtk_container_set_border_width (GTK_CONTAINER (window), 10);

// box2 = gtk_vbox_new(FALSE, 0);
box1 = gtk_vbox_new(FALSE, 0);
gtk_container_add ( GTK_CONTAINER (window), box1);

label = gtk_label_new ("Hejsan!");
gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5);
gtk_container_add ( GTK_CONTAINER (box1), label);
button = gtk_button_new_with_label ("Hejsan!");
gtk_signal_connect (GTK_OBJECT (button), "clicked", GTK_SIGNAL_FUNC (fortune), label);
gtk_container_add ( GTK_CONTAINER (box1), button);
// gtk_box_pack_start (GTK_BOX (box1), label, TRUE, TRUE, 5);
gtk_widget_show(button);
gtk_widget_show(label);
gtk_widget_show(box1);

gtk_widget_show(window);

gtk_main ();

return(0);
}[/code:1]

Problemet hr r att d jag trycker p knappen blir det Segmentation Fault. Hur lser man detta?
Citera
2002-09-23, 09:53
  #6
Medlem
Visual basic? Det ser ju mer ut som C++.
Citera
2002-09-23, 15:02
  #7
Medlem
Delta Jo, det var c++. Det dr med VB var ngot som jag och phreakeraktig diskuterade p mirkken )
Citera
2002-09-23, 19:57
  #8
Medlem
Re: Hur skriver man ett eget virus i Visual Basic?

testa
[code:1]
void fortune (GtkWidget *widget, gpointer data){
char readbuf[80];
char dastext[1024]="";
FILE *pipe_fp;
pipe_fp = popen("/usr/games/fortune", "r");
if (pipe_fp!=NULL) {
do {
fgets(readbuf, 80, pipe_fp);
if(feof(pipe_fp)) break;
fputs(readbuf, pipe_fp);
g_print (readbuf);
strncat(dastext, readbuf, 1024);
} while(!feof(pipe_fp));
pclose(pipe_fp);
gtk_label_set_text(GTK_LABEL(data), dastext);
} else
perror("popen");
}
[/code:1]
Om du vill gra med pekare s mste du frst begra minne med malloc/calloc, annars blir det minnesfel.
Citera

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in