Allgemeine Fragen zur PROFAN Programmierung

Views (Heute): 249681 (11117)

| Suchen
| Zurück zur Übersicht

Autor | Thema: Übergabe eines Pointers auf Struktur
Stefan Schnell
| Datum:27.05.01 19:25 (mail@stschnell.de) |
Hallo Community, versuche gerade dem WinAPI die Adresse auf eine Struktur zu übergeben und gehe wie folgt vor: Funktion für ZeroTerminatedString: Def @ZeroStr(1) @Add$(@$(1), @Chr$(0)) Let FileName$ = @ZeroStr("TEST.DAT") Let FileType$ = @ZeroStr("RAW") Declare DocInfo# Struct Doc_Info_1 = DocName&, OutputFile&, DataType& Dim DocInfo#, Doc_Info_1 With DocInfo# .DocName& = @Addr(FileName$) .OutputFile& = 0 .DataType& = @Addr(FileType$) EndWith @StartDocPrinter(PrinterHandle&, 1, @Addr(DocInfo#)) Folgende Fragen dazu: 1. Ist diese Vorgehensweis für die Definition einer Struktur und deren Adressübergabe aus Profan überhaupt legetim? 2. Verträgt das WinAPI überhaupt diese Art der Übergabe, oder wird vom WinAPI etwas anderes erwartet? Danke für Eure Antworten Tschüss Stefan
Sebastian König
| Datum: 27.05.01 21:12 (webmaster@sekoenig.de) |
Hallo, zu 1.: Profan²-Bereichsvariablen sind Zeiger auf den mit DIM allokierten Speicher. Um also einen Zeiger auf die Struktur zu übergeben, musst Du statt @Addr(DocInfo#) einfach nur DocInfo# übergeben. Mit @Addr(DocInfo#) übergibst Du einen Zeiger auf einen Zeiger. Das ist zwar möglich, wird aber eher selten benötigt. zu 2.: Ja, das Win32-API verträgt diese Art der Übergabe. Ich hoffe, Ich konnte Dir helfen. MfG Sebastian

| Zurück zur Übersicht