amiga-news DEUTSCHE VERSION
.
Links| Forums| Comments| Report news
.
Chat| Polls| Newsticker| Archive
.

amiga-news.de Forum > Search [ - Search - New posts - Register - Login - ]

First 2 3 4 5 6 -7- 8 9 Search results: 263 hits (30 per page)
Mazze   User

2004-07-28, 00:25 h

[ - Direct link - ]
topic: ReadPixelArray - Versuchskaninchen gesucht
Board: Programmierung

Zitat:
Ein bißchen Off-Topic: Hast Du die ATI Rage Pro im VESA-Modus laufen oder via neuem Kernel in allen Auflösungen? Wenn mit neuem Kernel, wie hast das zum Laufen gebracht? Hat bei mir nämlich nie funktioniert :(

Seit mir die Geforce abgeraucht ist, betreibe ich Amithlon mit der ATI im Vesa-Modus.
 
Mazze   User

2004-07-27, 22:10 h

[ - Direct link - ]
topic: system / noixemul
Board: Programmierung

Jetzt gehts. Ich musste mit dem AmigaDos-Kommando "path" das Verzeichnis, in dem "sh" steht, einbinden.
Ich bedanke mich für eure Hilfe.

@ Komiker obw:
Wenn man nach einem Fehler sucht, dann gehört die Verwendung von nicht standardmäßigen Tools zu den möglichen Fehlerquellen. Es könnte durchaus sein, dass die VNC-Shell nicht 100% kompatibel zur Shell ist.

 
Mazze   User

2004-07-25, 21:27 h

[ - Direct link - ]
topic: ReadPixelArray - Versuchskaninchen gesucht
Board: Programmierung

Bei mir lief der Test durch
Amithlon AOS3.9BB2
Gfx: ATI-Rage Pro, Picasso96
 
Mazze   User

2004-07-25, 21:20 h

[ - Direct link - ]
topic: system / noixemul
Board: Programmierung

Wenn ich folgendes in eine Shell eingebe:

code:
5.Work:CProj> sh
# /sys/tools/editpad
# sys:tools/editpad


dann startet der Editor in beiden Fällen.
 
Mazze   User

2004-07-23, 23:40 h

[ - Direct link - ]
topic: system / noixemul
Board: Programmierung

code:
5.Work:CProj> c:list env:path
No information for "env:path": Objekt nicht gefunden
5.Work:CProj>


code:
#include <stdlib.h>
#include <stdio.h>

int main (void)
{
  int r;
  r = system("/SYS/Tools/EditPad");
  printf("Rück %dn", r);
  r = system("SYS:Tools/EditPad");
  printf("Rück %dn", r);
  return 0;


Ohne -noixemul hat r in beiden Fällen den Wert 32512.

Ich habe auch schon probiert, statt der VNC-Shell die normale zu nehmen: keine Änderung.
 
Mazze   User

2004-07-22, 21:52 h

[ - Direct link - ]
topic: system / noixemul
Board: Programmierung

code:
7.Workbench:> dir env:path
Could not get information for env:path
Objekt nicht gefunden
7.Workbench:> sh
# echo $PATH
/bin:/usr/bin:/usr/ucb


Wie geht es weiter?
 
Mazze   User

2004-07-20, 20:52 h

[ - Direct link - ]
topic: system / noixemul
Board: Programmierung

Wenn ich 'system' mit NULL aufrufe, erhalte ich in beiden Fällen das Ergebnis '1'.
 
Mazze   User

2004-07-19, 22:04 h

[ - Direct link - ]
topic: system / noixemul
Board: Programmierung

Hi,

code:
#include <stdlib.h>
#include <stdio.h>

int main (void)
{
  int r;
  r = system("EditPad");
  printf("Rück %dn", r);
  return 0;
}


Dieses Beispiel funktioniert, wenn ich mit "-noixemul" kompiliere. Ohne diese Option wird der Editor nicht gestartet und r den Wert 32512.
Ich habe schon versucht, den Linux-Pfad anzugeben (/sys/tools/editpad). Klappt aber nicht. Wie geht es?

MFG Matthias
 
Mazze   User

2004-07-11, 10:59 h

[ - Direct link - ]
topic: Gutes oder schlechtes Design?
Board: Programmierung

Zu den Frames habe ich folgendes gefunden:
Frames


Aus eigener Erfahrung kann ich folgendes sagen: mir ist es beim Drucken schon öfters passiert, dass eine leere Seite oder die Navigationsleiste ausgedruckt wurde. Man muss also darauf achten, dass vor dem Drucken der richtige Frame aktiv ist.
 
Mazze   User

2004-06-14, 18:41 h

[ - Direct link - ]
topic: Anzahl der Farben unter Hi/True Color
Board: Programmierung

Hmm, dann müssten da 2 Tiefeninformationen vom Screenmode-requester an den Screen übergeben werden. Steckt die echte (16/24/32) Tiefe in der Mode-ID?
 
Mazze   User

2004-06-14, 01:36 h

[ - Direct link - ]
topic: Anzahl der Farben unter Hi/True Color
Board: Programmierung

Jetzt bin ich platt.
Unter Amithlon ist der Farb-Regler bei 15/32-Bit Screens grau hinterlegt.
Aber unter WinUAE kann ich den Farbregler bei allen Modi verstellen. GetBitMapAttr(...depth) liefert aber nicht die eingestellte Tiefe zurück.


Um festzustellen, ob ein Paletten- oder ein Trucolor-Screen vorliegt, habe ich bisher immer mit GetBitMapAttr abgefragt, ob die BitMaptiefe größer oder kleiner gleich 8 ist. Sieht das jetzt bei WinUAE anders aus?

[ Dieser Beitrag wurde von Mazze am 14.06.2004 editiert. ]
 
Mazze   User

2004-06-13, 18:33 h

[ - Direct link - ]
topic: Anzahl der Farben unter Hi/True Color
Board: Programmierung

code:
struct ScreenModeRequester
{
    ULONG sm_DisplayID;	   /* Display mode ID		       */
    ULONG sm_DisplayWidth;	   /* Width of display in pixels       */
    ULONG sm_DisplayHeight;	   /* Height of display in pixels      */
    UWORD sm_DisplayDepth;	   /* Number of bit-planes of display  */


Welcher Wert steht denn in sm_DisplayDepth? Ich bin jetzt zu faul, um es selbst auszuprobieren.
 
Mazze   User

2004-06-09, 13:41 h

[ - Direct link - ]
topic: stdin und stdout umlenken
Board: Programmierung

Danke für die Hinweise,

@thomas: hat nicht geklappt.

Falls euch interessiert, was ich mache: ich schreibe einen Sourcecodegenerator. Er erstellt aus einer Eingabedatei eine main.c und main.h. Es gibt Parameter zum Library öffnen, Tooltypes auslesen etc

Ich mache das jetzt so, dass beim Start von der Workbench für stdin und stdout je ein con-Fenster mit der AUTO-Option geöffnet wird. Es geht hauptsächlich darum, dass Statusausgaben und Debug-Meldungen nicht im NILwana landen. Wenn ein Anwender echte Shell-Funktionalität braucht, muss er sich halt selbst was mit den entsprechenden Betriebssystem-Funktionen basteln.
 
Mazze   User

2004-06-08, 21:18 h

[ - Direct link - ]
topic: stdin und stdout umlenken
Board: Programmierung

Hi,

ich möchte stdin und stdout auf ein neues con-Fenster umlenken. Bei folgendem Code werden 2 neue Fenster geöffnet. Ich möchte aber, dass Ein- und Ausgabe in *einem* Fenster erscheinen. Geht das?

code:
#include <stdio.h>

int x;

int main(void)
{
	freopen("con:40/40/200/200/Out","w",stdout);
	freopen("con:80/80/200/200/In","r",stdin);

	scanf("%d", &x);

	printf("lalalan");
	scanf("%d", &x);
}


Grund ist, dass ein mit vbcc kompiliertes Program kein Konsolen-Fenster öffnet, wenn es von der Workbench gestartet wird. Die Ein- und Ausgabe mit printf und co. landet deshalb im Nirwana.
 
Mazze   User

2004-06-02, 19:00 h

[ - Direct link - ]
topic: Toolbar-Buttons mit Reaction
Board: Programmierung

Zitat:
Eine Frage noch: Ist es möglich, einen Button zu erstellen, der sowohl ein Bild als auch einen Text enthält (ähnlich wie die Toolbar-Knöpfe in YAM)?

Da bleibt Dir wohl nichts andres übrig, als den Text vorher ins Bild reinzumalen. Oder die Texte als Label-Image drunter zu setzen.
 
Mazze   User

2004-06-01, 22:38 h

[ - Direct link - ]
topic: Toolbar-Buttons mit Reaction
Board: Programmierung

Zitat:
Zitat:
Ist halt leider nur mäßig dokumentiert...
ReAction selbst ist auch nicht besonders gut dokumentiert. Im NDK3.9 gibt es die Autodocs zu den ReAction-Klassen/Gadgets/Images.
Martin Elsners Kurs hat mir sehr geholfen.


Zitat:
code:
LAYOUT_AddChild ButtonObject
   GA_ID ... etc
ButtonEnd
CHILD_WeightedWidth, 0,
CHILD_WeightedHeight,0,


Hm, daraus werde ich jetzt nicht schlau, kannst du mal versuchen im Klartext zu beschreiben, was du da machst?
[/quote]
Wenn man in C eine ReAction-GUI schreibt, kommen 2 Besonderheiten der Sprache C zum Einsatz: Makros und flexible Parameterlisten. Schritt für Schritt würde das etwa so aussehen:
code:
Object *button1 = NewObject(BUTTON_GetClass(),NULL,
GA_ID, 1, GA_Text, "OK", GA_RelVerify, TRUE, TAG_DONE);
(GA_RelVerify ist erforderlich, damit ein Event ausgelöst wird, GA_ID steht dann im Event-Loop zur Verfügung)

Object *button2 = NewObject(BUTTON_GetClass,NULL,
GA_ID, 2, GA_Text, "Cancel", GA_Relverify, TRUE, TAG_DONE);

Object *inner_layout = NewObject(LAYOUT_GetClass(),NULL,
LAYOUT_AddChild, button1, //button 1 hinzufügen
CHILD_WeightedHeight, 0, //Höhe für button1 minimieren
LAYOUT_AddChild, button2, // button 2 hinzufügen
CHILD_WeightedHeight,0, // Höhe für button2 minimieren
TAG_DONE);

Object *outer_layout = NewObject(LAYOUT_GetClass(),NULL,
LAYOUT_AddChild, inner_layout,
CHILD_WeightedHeight, 0, //Höhe für Toolbar minimieren
... weitere Gadgets
TAG_DONE);


Gewöhnungsbedürftig ist, dass die CHILD...-Attribute zum Layout gehören, sie beeinflußen aber das unmittelbar zuvor erzeugte Gadget

Zitat:
Zitat:
Ich habe mir den Screenshot angeschaut. In deinem Fall würde ich nur WeightedHeight angeben.
Warum?
Die Taskbar soll in der Höhe zusammengestaucht werden. Dazu ist sowohl bei den Buttons als auch beim Layout, in dem die Buttons stehen, WeightedHeight,0 erforderlich.
In der Breite hängt es eigentlich nur davon ab, was dir optisch besser gefällt. Mit EvenSize hast Du ja bereits erreicht, dass alle Buttons gleich groß sind. Mit einem WeightedWidth,0 beim Layout könntest Du die Toolbar z.B. in die linke Ecke zwängen.
 
Mazze   User

2004-06-01, 20:40 h

[ - Direct link - ]
topic: Toolbar-Buttons mit Reaction
Board: Programmierung

Hallo,

hat AWNPipe etwas mit ReAction zu tun?

Wenn ich bei ReAction verhindern will, dass sich ein Button beim Vergrößern des Fensters vergrößert, mache ich das so:

code:
LAYOUT_AddChild ButtonObject
   GA_ID ... etc
ButtonEnd
CHILD_WeightedWidth, 0,
CHILD_WeightedHeight,0,


Wenn sich mehrere Buttons in einem Layout befinden, gebe ich auch beim Layout die Weighted-Parameter an.
Die Weighted-Parameter sind eigentlich dazu da, um bei mehreren Gadgets die prozentualen Größenverhältnisse zueinander festzulegen. Bei '0' wird die kleinstmöglichste Größe veranlasst.

Nachtrag:
Ich habe mir den Screenshot angeschaut. In deinem Fall würde ich nur WeightedHeight angeben.

[ Dieser Beitrag wurde von Mazze am 01.06.2004 editiert. ]
 
Mazze   User

2004-05-24, 22:21 h

[ - Direct link - ]
topic: Datatype-Dokumentationen? Fragen?
Board: Programmierung

Ich würde es im Prinzip so machen:

NewDTObject
DoMethod Proclayout
GetDTAttr( BitmapHeader, Bitmap
Aus dem Bitmapheader Höhe und Breite der Grafik auslesen

struct Rasport rp
InitRastPort
AllocBitmap (IIRC kann man hier das Format angeben, müsste in der Cybergraphics-Doku stehen)
RastPort mit Bitmap verknüpfen
Datatype-Bitmap in neue Bitmap blitten
Das Zeichnen in die Bitmap geht dann mit dem zuvor erzeugten Rastport


 
Mazze   User

2004-05-08, 15:48 h

[ - Direct link - ]
topic: Library erzeugen
Board: Programmierung

Ich habe die GGTL* auf den Amiga portiert. Mittlerweile sehe ich keinen großen Sinn mehr darin, eine Runtime-Library zu erzeugen. Ich binde einfach den C-Source eine und erspare mir dadurch den Stress mit Registern, Hooks und Wrappern für Standard-C-Funktionen.

Falls sich mal jemand meinen Versuch, eine Runtime-Library zu erzeugen, anschauen will:
Download
Es ist das Programm test-mergesort, das Fehler meldet.

* Generic Game Tree Library. (Library zum Erzeugen von "intelligenten" Spielen wie Othello, Dame, Schach etc.)
GGTL Amiga Port
Original Linux-Version
Es wird wohl noch ein paar Tage dauern, bis es im Aminet erscheint.
 
Mazze   User

2004-05-07, 19:08 h

[ - Direct link - ]
topic: Webbrowsercheck
Board: Programmierung

Ich hab's mir mit IE 6 auf W2000 angeschaut und folgenden Unterschied festgesgellt:
Bei der Standardversion sind oben 3 waagrechte graue Balken; der mittlere ist mit "Bitte wählen Sie ihr Bundesland" beschriftet. Beim obersten Balken fehlen links und rechts schmale Streifen.
Bei der patched-Version sehe ich nur 1 Balken.
(Mit Konqueror sieht es genau so aus)
 
Mazze   User

2004-04-29, 23:54 h

[ - Direct link - ]
topic: Library erzeugen
Board: Programmierung

Zitat:
Also C. In diesem Fall mußt Du Dir um Scratch-Register _keinen_ Kopf machen. Der Compiler kümmert sich um die Details.

Gut

Zitat:
BTW, Du weisst, das GCC 3.3 unter Umständen bei Verwendung von LP-Inlines nicht-funktionierenden Code erzeugt?

Habe ich nicht gewusst. Allerdings muss ich ein #define setzen, wenn ich ReAction-GUIs erstelle. Dies hat möglicherweise etwas mit den LP-Makros zu tun.

Zitat:
Alle Libraries müssen AmigaOS-ABI konform sein, soll heissen alle non-scratch Register _müssen_ nach dem Funktionsaufruf den selben Wert wie _vor_ dem Funktionsaufruf haben. Scratch-Register _können_andere Werte haben, aber sie _müssen_ nicht. Wenn eine Funktion vom allgemeinen Schema abweicht, ist das meist dokumentiert (zb. Forbid/Permit, etc.) aber das ist nur für Assembler wirklich interessant. Für den Compiler ist der OS-Funktionsaufruf wie jeder andere, dh. er erwartet das "Standardverhalten".

a4/a5[/a6/a7 ;-)] vermeiden. a4 und a5 werden vom Compiler verwendet. a0 und a1 sind vollkommen korrekt.


OK

Zitat:
inline/macros.h enthält nur die Makros., die von OS-Funktionen verwendet werden. Wenn eine 3rd-Party Library eine Kombination verwendet, die eine System-Libraries nicht hat, dann fehlt das Makro.
Du solltest Dir für Deine Library ein Inline erzeugen, die die LP Makros "direkt" verwendet (ohne Einbindung von inlines/macros.h).


OK

Zitat:
Zitat:
Frage: gibt es einen Unterschied zwischen Adress- und Wert-Register? Kann ich eine Adresse an ein Wert-Register übergeben?
Die Frage verstehe ich nicht.
Eine C-Funktion mit einem Pointer als Argument:
Bsp: void test(void *p)
würde ich in einer Library mit den Makros aus Clib-SDI folgendermaßen deklarieren
ASM(VOID) LIBtest (REG(a0, APTR p))
Kann ich a0 durch d0-7 ersetzen?

Leute, ich stelle das Thema "Library erzeugen" erstmal zurück und binde stattdessen den C-Code direkt ein. Wahrscheinlich habe ich einen Fehler gemacht, den ich erst finde, wenn ich mit etwas zeitlichem Abstand noch mal von vorne anfange.
 
Mazze   User

2004-04-28, 19:51 h

[ - Direct link - ]
topic: Library erzeugen
Board: Programmierung

Zitat:
Machst Du Assembler oder C? In C mußt Du Dich um so was nicht kümmern. Das erledigt der Compiler für Dich, weil er sich an ein ABI hält. Soll heißen, Parameter kannst Du in SCratch-registern übergeben, da der Compiler die Argumente bei Bedarf an einen "sicheren" Ort bringt.

Ich programmiere in C und zwar gcc3.3 unter Amithlon/AOS3.9BB2.
Wenn ich in einem normalen C-Programm Registervariablen verwende, dann trifft es auf jeden Fall zu, dass die Registerinhalte an einen sicheren Ort gebracht werden. Aber was passiert, wenn ich eine Library-Funktion aufrufe? Weis der C-Kompiler, dass bestimmte Register (Scratch) "hinterrücks" von den Library-Funktionen verändert werden können?

Ich habe jetzt mal in der Library die Registerparameter a0 und a1 durch a3 und a5 ersetzt. Jetzt bekomme ich im Test-Programm einen Parse-Error. Als Ursache vermute ich folgendes Makro im Inline-Header:

code:
#define sl_map(root, func, data) 
	LP3A5(0x3c, APTR, sl_map, APTR, root, a2, struct Hook *, func, a3, APTR, data, d7, 
	, SL_BASE_NAME)


Hier fällt zunächst mal auf, dass der 3. Parameter statt auf a5 auf d7 liegt.

In meinem inline/macros.h ist kein LP3A5 definiert. Hier klappt offenbar das Zusammenspiel zwischen fd2pragma und gcc nicht.

Frage: gibt es einen Unterschied zwischen Adress- und Wert-Register? Kann ich eine Adresse an ein Wert-Register übergeben? Oder muss ich mich übergeben? :lach:

[ Dieser Beitrag wurde von Mazze am 28.04.2004 editiert. ]
 
Mazze   User

2004-04-27, 19:48 h

[ - Direct link - ]
topic: Library erzeugen
Board: Programmierung

Zitat:
Non-Scratch Register werden bei Funktionseintritt gesichert.

Angenommen, ich habe in einer Funktion eine Variable auf ein Scratch-Register gelegt. Wenn ich jetzt eine Betriebssystem-Funkion aufrufe, die ihre Parameter ebenfalls auf Scratch-Register leitet, dann wird doch aus einem Call-by-Value ein Call-by-Reference-Aufruf. Sehe ich das richtig? Die Betriebssystem-Funktion kann doch "hintenrum" den Registerwert veränderen. Wie kommt den der Kompiler bzw. Optimizer damit zurecht?
 
Mazze   User

2004-04-25, 19:30 h

[ - Direct link - ]
topic: Zorro?
Board: Amiga, AmigaOS 4

Da ich die Developer CD gerade im Laufwerk habe:

* The original "Zorro" name comes from the code name of one of the A1000
prototype boards. The "Zorro" board was the one that followed the
"Lorraine," and was the board in the works when much of the expansion
specifications were worked up. Since everyone uses the "Zorro" name,
and no one's suggested a better name, we've stuck with it.
 
Mazze   User

2004-04-23, 22:50 h

[ - Direct link - ]
topic: Library erzeugen
Board: Programmierung

Zitat:
Original von gni:
Zitat:
Mazze:
im Moment sieht es so aus, dass alles bis auf eine Sortierfunktion funktioniert.
Um der Fehlerursache näher zu kommen: Was passiert, wenn sich eine Libraryfunktion rekursiv aufruft?

Das klingt nach Stack-overflow.

Ich habe mich ungenau ausgedrückt. Die Funktion wird absichtlich rekursiv aufgerufen. Ich muss vermutlich non-scratch-Register verwenden.

Zitat:
Werden dann die Register gesichert oder muss ich mich selbst darum kümmern?
Non-Scratch Register werden bei Funktionseintritt gesichert. Noch ein Hinweis: Library-funktionen (auch eigene!) sollten immer relativ zur Librarybasis aufgerufen werden.
[/quote]

Bei den eigenen Funktionen kenne ich den Prototyp. Aber in den Protos der Systemlibraries taucht doch der Basepointer gar nicht auf?


Zum Thema Stack: Übernimmt eine Library den Stack des aufrufenden Programmes? Habe ich überhaupt eine Chance zu verhindern, dass eine Libraryfunktion die Stackgrenze überschreitet?

MFG
Matthias
 
Mazze   User

2004-04-22, 19:31 h

[ - Direct link - ]
topic: Library erzeugen
Board: Programmierung

Hi,

im Moment sieht es so aus, dass alles bis auf eine Sortierfunktion funktioniert.
Um der Fehlerursache näher zu kommen: Was passiert, wenn sich eine Libraryfunktion rekursiv aufruft? Werden dann die Register gesichert oder muss ich mich selbst darum kümmern?
 
Mazze   User

2004-04-19, 09:57 h

[ - Direct link - ]
topic: Library erzeugen
Board: Programmierung

Nach dem ich free durch FreeVec ersetzt hatte, bekam ich bei dieser Funktion den Fehler mit der fehlenden SysBase.
Der Fehler tritt nur auf, wenn ich die Funktionsadresse zuweise.
( z. B. func = FreeVec)
Beim normalen Aufruf klappt das. Ich habe deshalb die Library-Funktion so umgebaut, dass keine Zuweisung der Funktionsadresse stattfindet.
 
Mazze   User

2004-04-18, 23:17 h

[ - Direct link - ]
topic: Library erzeugen
Board: Programmierung

Als Basis für die Library verwende ich CLIB-SDI. Der Linker meldet folgendes:

code:
5.Work:CProj/ggtl-amiga/src/sl> ed makefile.gcc
5.Work:CProj/ggtl-amiga/src/sl> make -f makefile.gcc
gcc -O2 -c -I ../include/C/ -D __NOLIBBASE__ -o libinitgcc.o libinit.c
gcc -O2 -c -I ../include/C/ -D __NOLIBBASE__ -o slgcc.o sl.c
gcc -noixemul -nostartfiles -s -o ../libs/sl.library libinitgcc.o slgcc.o
/gg/lib/gcc-lib/m68k-amigaos/3.3/../../../libnix/libnix.a(free.o)(.tex t+0x2a): undefined reference to 'SysBase'
/gg/lib/gcc-lib/m68k-amigaos/3.3/../../../libnix/libnix.a(free.o)(.tex t+0x46): undefined reference to 'SysBase'
/gg/lib/gcc-lib/m68k-amigaos/3.3/../../../libnix/libnix.a(free.o)(.tex t+0x52): undefined reference to 'SysBase'
/gg/lib/gcc-lib/m68k-amigaos/3.3/../../../libnix/libnix.a(malloc.o)(.t ext+0x18): undefined reference to 'SysBase'
/gg/lib/gcc-lib/m68k-amigaos/3.3/../../../libnix/libnix.a(malloc.o)(.t ext+0x4e): undefined reference to 'SysBase'
/gg/lib/gcc-lib/m68k-amigaos/3.3/../../../libnix/libnix.a(malloc.o)(.t ext+0x8a): more undefined references to 'SysBase' follow
collect2: ld returned 1 exit status


So sieht das Makefile aus:

code:
CFLAGS = -O2 -c -I ../include/C/ -D __NOLIBBASE__
LFLAGS = -noixemul -nostartfiles -s

DDIR = ../libs/# the directory, where destination library is stored

$(DDIR)sl.library: libinitgcc.o slgcc.o
	gcc $(LFLAGS) -o $@ libinitgcc.o slgcc.o

libinitgcc.o: libinfo.h libinit.c
	gcc $(CFLAGS) -o $@ libinit.c

slgcc.o: libinfo.h sl.c
	gcc $(CFLAGS) -o $@ sl.c


Ich verstehe das nicht. SysBase wird in libinit.c definiert. Da ich aufgrund Holgers's posting free und malloc durch AmigaOs-Funktionen ersetzen werde, löst sich das Problem wahrscheinlich so nebenbei. Trotzdem interessiert mich mal, was hier los ist.

[ Dieser Beitrag wurde von Mazze am 18.04.2004 editiert. ]
 
Mazze   User

2004-04-17, 16:27 h

[ - Direct link - ]
topic: Library erzeugen
Board: Programmierung

Zitat:
Original von cygnusEd:

>Kann ich in einer Library die C-Funktion "free" aufrufen?

Wenn Du den Speicher vorher mit malloc() (oder realloc()... ) angefordert hast - ja.


Ok. Ich bin nur deshalb etwas vorsichtig, weil es heißt, dass eine Library-Funktion kein "forbid" unterbrechen darf.
 
Mazze   User

2004-04-17, 10:58 h

[ - Direct link - ]
topic: Library erzeugen
Board: Programmierung

Ich möchte folgende Funktion in eine Shared-Library einbauen:

code:
void sl_free(void *root, void (*func)(void*))
{
	struct sl_node *p;

	if (func == NULL)
		func = free;

	while ((p = sl_pop(&root)))
		func(p);
}


Ich bin davon ausgegangen, dass ich Callbacks mit "struct Hook" realisieren muss. Ich habe mir mal den Source der expat.library angeschaut. Dort wird nicht mit "struct Hook" gearbeitet. Wann braucht man "struct Hook"?

Kann ich in einer Library die C-Funktion "free" aufrufen?
 
 
First 2 3 4 5 6 -7- 8 9 Search results: 263 hits (30 per page)

Search terms
keywords      username
Search options
Only search these boards
   match whole words only
show only titles
show all results

.
Masthead | Privacy policy | Netiquette | Advertising | Contact
Copyright © 1998-2024 by amiga-news.de - all rights reserved.
.