Windows GDI und WinAPI
Theoretisch Ja.Christian hat geschrieben:joa, die lokalen variablen werden ja auch aufm stack abgelegt aber n dynamisches array müsste lokal wieder gehn oder ?
Das war aber sowieso ein Schmarrn, ich brauch ja höchstens
array[$FF] of TRGBQuad; und das passt noch auf den Stack.
Danke!Christian hat geschrieben: und zum testen, hab gerad kein linux hier mach ich heut abend zuhaus
-
- Beiträge: 1187
- Registriert: Mi 13. Dez 2006, 10:58
- OS, Lazarus, FPC: Winux (L 1.2.xy FPC 2.6.z)
- CPU-Target: AMD A4-6400 APU
- Wohnort: Hamburg
-
- Beiträge: 1187
- Registriert: Mi 13. Dez 2006, 10:58
- OS, Lazarus, FPC: Winux (L 1.2.xy FPC 2.6.z)
- CPU-Target: AMD A4-6400 APU
- Wohnort: Hamburg
machs per:
Möglicherweise brauchst du noch Mode: MyType (z.B. Farbtiefe), dann kannst du innerhalb der Prozdur einen TypeCast auf Buf machen:
Das darf dann auch ein Array sein ({[loopvar]} = optional). Das übergibt genau Anzahl = BufSize Bytes und durch var Buf ist die Rückgabe gesichert.
#Edit
Kam etwas spät der Vorschlag, hilft aber manchmal um Probleme zu umgehen.
Code: Alles auswählen
procedure BlaBla(BufSize: longint; var Buf);
Code: Alles auswählen
begin
TMyStruct(Buf){[loopvar]}.Property:= arg;
arg:= TMyStruct(Buf){[loopvar]}.Property;
end;
#Edit
Kam etwas spät der Vorschlag, hilft aber manchmal um Probleme zu umgehen.
Zuletzt geändert von schnullerbacke am Do 1. Feb 2007, 14:56, insgesamt 1-mal geändert.
Humor ist der Knopf, der verhindert, daß uns der Kragen platzt.
(Ringelnatz)
(Ringelnatz)
-
- Beiträge: 1187
- Registriert: Mi 13. Dez 2006, 10:58
- OS, Lazarus, FPC: Winux (L 1.2.xy FPC 2.6.z)
- CPU-Target: AMD A4-6400 APU
- Wohnort: Hamburg
Der Witz bei var Buf liegt in der Tatsache, das es call by reference läuft, arbeitet also auf den tatsächlichen Daten. Beim call by value kann das bei dyn-Arrays in die Hose gehen.
Man kann im interface aber auch (const MyVar: MyType) angeben, das bewirkt etwa das gleiche.
Man kann im interface aber auch (const MyVar: MyType) angeben, das bewirkt etwa das gleiche.
Humor ist der Knopf, der verhindert, daß uns der Kragen platzt.
(Ringelnatz)
(Ringelnatz)
Wieso das denn? Ich dachte Dynamische Array wären auf dem Heap und es würden sowieso nur Pointer übergeben?schnullerbacke hat geschrieben:Beim call by value kann das bei dyn-Arrays in die Hose gehen.
Zuletzt geändert von theo am Do 1. Feb 2007, 16:11, insgesamt 1-mal geändert.
-
- Beiträge: 1187
- Registriert: Mi 13. Dez 2006, 10:58
- OS, Lazarus, FPC: Winux (L 1.2.xy FPC 2.6.z)
- CPU-Target: AMD A4-6400 APU
- Wohnort: Hamburg
-
- Beiträge: 1187
- Registriert: Mi 13. Dez 2006, 10:58
- OS, Lazarus, FPC: Winux (L 1.2.xy FPC 2.6.z)
- CPU-Target: AMD A4-6400 APU
- Wohnort: Hamburg
Die hab ich nicht geändert, ich geh tunlichst immer auf Nummer sicher. Deswegen ja lieber call by reference, so es denn geht. Mit call by value hab ich meine bösen Erfahrungen schon hinter mir, da sollte man schon ziemlich genau wissen was man da tut, sonst gibt es bei pointern schnell eigenwillige Überraschungen.
Humor ist der Knopf, der verhindert, daß uns der Kragen platzt.
(Ringelnatz)
(Ringelnatz)