Pointer... (erledigt)

Übersicht BlitzMax, BlitzMax NG Allgemein

Neue Antwort erstellen

Vertex

Betreff: Pointer... (erledigt)

BeitragSa, Jan 29, 2005 0:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!
Habe folgende Funktion
Code: [AUSKLAPPEN]
struct PROTOENT* FAR getprotobynumber(
  int number
);

http://msdn.microsoft.com/libr...frame=true

Code: [AUSKLAPPEN]
typedef struct protoent {
  char FAR* p_name;
  char FAR  FAR** p_aliases;
  short p_proto;
} protoent;

http://msdn.microsoft.com/libr...oent_2.asp

Sie gibt mir z. B. bei 6 "tcp" oder bei 0 "ap" zurück.

Problem ist, wie setze ich das ganze in BMax um?

Code: [AUSKLAPPEN]
Type TProtoent
   Field pName:Byte Ptr
   Field pAliases:Byte Ptr
   Field shProto:Short
End Type

Extern "OS"
   Function s_getprotobynumber:TProtoent(iNumber:Int) = "getprotobynumber@4"
End Extern

Local tProto:TProtoent
tProto = s_getprotobynumber(0)
If tProto = Null Then
   Print "Fehler"
Else
   Print "Protokoll(0) = "+"".FromCString(tProto.pName)
End If


mfg olli

Offentsichtlich ist es nciht wie in C gelöst wurde, man muss immer eine Instanz von der Struktur anlegen, und die Zurückgegebene auf die neue kopieren:
Code: [AUSKLAPPEN]
Type TProtoent
   Field pName:Byte Ptr
   Field pAliases:Byte Ptr
   Field shProto:Short
End Type

Extern "OS"
   Function s_getprotobynumber:Byte Ptr(iNumber:Int) = "getprotobynumber@4"
End Extern

Local tProto:TProtoent = New TProtoent
MemCopy(tProto, s_getprotobynumber(0), 10)
If tProto = Null Then
   Print "Fehler"
Else
   Print "Protokoll(0) = "+"".FromCString(tProto.pName)
End If
vertex.dreamfall.at | GitHub

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group