array of const
- fliegermichl
- Lazarusforum e. V.
- Beiträge: 1423
- Registriert: Do 9. Jun 2011, 09:42
- OS, Lazarus, FPC: Lazarus Fixes FPC Stable
- CPU-Target: 32/64Bit
- Wohnort: Echzell
Re: array of const
Danke für die Erklärung.
-
- Beiträge: 6143
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: array of const
Ist eine Mischung aus "array of const" und "varargs" möglich ?
Ich habe folgendes in den GTK"-Sourcen entdeckt:
In den C-Sourcen sieht dies so aus: Eigentlich nichts besonderes.
Ich bin in folgendem Beispiel stecken geblieben: https://zetcode.com/gui/gtk2/gtktreeview/ 3. Beispiel (treeview.c)
Nur wird mir mit SIGSEGV quitiert.
Kann mir einer weiter helfen ?
Ich habe folgendes in den GTK"-Sourcen entdeckt:
Code: Alles auswählen
function gtk_tree_store_new(n_columns:gint):PGtkTreeStore; cdecl; overload; external gtklib;
function gtk_tree_store_new(n_columns:gint; args:array of const):PGtkTreeStore; cdecl; overload; varargs; external gtklib;
Code: Alles auswählen
GtkTreeStore *gtk_tree_store_new (gint n_columns, ...);
Ich bin in folgendem Beispiel stecken geblieben: https://zetcode.com/gui/gtk2/gtktreeview/ 3. Beispiel (treeview.c)
Code: Alles auswählen
const
COLUMN = 0;
NUM_COLS = 1;
....
var
treestore: PGtkTreeStore;
begin
treestore := gtk_tree_store_new(NUM_COLS, [G_TYPE_STRING]);
gtk_tree_store_append(treestore, @toplevel, nil);
gtk_tree_store_set(treestore, @toplevel, COLUMN, 'Interpreter Sprachen', -1);
gtk_tree_store_append(treestore, @child, @toplevel);
gtk_tree_store_set(treestore, @child, COLUMN, 'Python', -1);
.....
Kann mir einer weiter helfen ?
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
-
- Lazarusforum e. V.
- Beiträge: 3158
- Registriert: Di 22. Jul 2008, 19:27
- OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
- CPU-Target: 32bit x86 armhf
- Wohnort: Köln
- Kontaktdaten:
Re: array of const
array of const wird bei external cdecl doch automatisch zu varargs? Ich hätte den varargs-Modifier also bei der ersten Zeile erwartet (siehe auch https://www.freepascal.org/docs-html/ref/refsu97.html)
Also so herum:
Code: Alles auswählen
function gtk_tree_store_new(n_columns:gint):PGtkTreeStore; cdecl; overload; varargs; external gtklib;
function gtk_tree_store_new(n_columns:gint; args:array of const):PGtkTreeStore; cdecl; overload; external gtklib;
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
-
- Beiträge: 6143
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: array of const
Also habe ich es richtig verstanden, ein Bug in der gtk2-Unit ?Also so herum:
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
-
- Beiträge: 6143
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: array of const
Code: Alles auswählen
gtk_tree_store_set(treestore, @child, COLUMN, 'CC', -1); // geht
gtk_tree_store_set(treestore, @child, COLUMN, 'C', -1); // SIGSEV
Mit einer manuellen Umwandlung geht es.
Code: Alles auswählen
gtk_tree_store_set(treestore, @child, COLUMN, PChar('C'), -1);
Gut ich gebe zu, ich arbeite hier mit einer Brücke von Pascal nach C-libs.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
-
- Lazarusforum e. V.
- Beiträge: 3158
- Registriert: Di 22. Jul 2008, 19:27
- OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
- CPU-Target: 32bit x86 armhf
- Wohnort: Köln
- Kontaktdaten:
Re: array of const
In C/C++ gibt es halt keinen Unterschied zwischen einem und mehreren Zeichen.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein