Deutsch
Forum

Delphi Übersetzung notwendig

 

Clemens
Meier
In der Win32.api habe ich etwas gefunden, was ich nicht verstanden habe. Also habe ich nach einem Stück Programm gesucht, in der die Funktion benutzt wird. Und gefunden habe ich das:
KompilierenMarkierenSeparieren
Mir geht es vor allem um die Zeile beginnend mit sh.SetSockOpt. Die letzten beiden Parameter verstehe ich nicht, da es um einen Bool-Wert geht. Kann mir jemand das auf XProfanisch übersetzen?

Gleiche Zeile auf C++:
KompilierenMarkierenSeparieren
In Xprofan vielleicht:
KompilierenMarkierenSeparieren
?

Danke
 
XProfan 9.1; XP SP2; FF; Editpad
24.05.2006  
 




Michael
Wodrich
(char *) und @B
Hier handelt es sich in Profan um einen Bereich (Zeiger auf die Daten) und das folgende ist dann einfach die Größenangabe.

Richte einen Bereich ein, setze mit Byte Bereich#,0 = ... Deinen Bool-Wert hinein und gebe Bereichsvariable an (es wird automatisch die Adresse des Bereiches genommen und als Größe halt die 1.

Schöne Grüße
Michael Wodrich
 
Programmieren, das spannendste Detektivspiel der Welt.
24.05.2006  
 




Clemens
Meier
Übersetzt also:
KompilierenMarkierenSeparieren
declare buffer#
dim buffer#,1
string buffer#,0 = "1"
setsockopt(csockTCPget&,$ffff,4,buffer#,sizeof(buffer#))

Oder habe ich es falsch verstanden?
 
XProfan 9.1; XP SP2; FF; Editpad
24.05.2006  
 




Michael
Wodrich
Byte, nicht String. So wie Du es machst landet dort die Dezimalzahl 49. Das ist für TRUE egal (ungleich null) aber für 0 steht dann dort 48 und das ist auch TRUE !!
Byte Buffer#,0 = 1 true
Byte Buffer#,0 = 0 false

Dann ist es richtig - sicherheitshalber würde ich für die Größe aber direkt eine 1 einsetzen - spart auch Zeit und Code.
Der Optionswert darf glaube ich nur 1 Byte groß sein.

Schöne Grüße
Michael Wodrich
 
Programmieren, das spannendste Detektivspiel der Welt.
24.05.2006  
 




Clemens
Meier
Klar, da hatte ich wohl einen Aussetzer. Byte, nicht String, anders macht es dann ja auch keinen Sinn. Merci.
 
XProfan 9.1; XP SP2; FF; Editpad
24.05.2006  
 




Sebastian
König
Vorsicht: Der Delphi-Typ Bool ist eigentlich nur ein Integer und ist deshalb 4 Byte groß.

Und mit Addr() könnte man sogar noch eine Zeile sparen...
 
Windows XP, XProfan/Profan² 4.5 bis 11
Profan2Cpp-Homepage:  [...] 
Alte Profan²-Seite:  [...] 
24.05.2006  
 




Michael
Wodrich
Dann sollte wohl besser mit einem LongInt gearbeitet werden.
KompilierenMarkierenSeparieren
!
Declare Bool&
Bool& = 1
SetSockOpt(cSockTCPget&,$FFFF,4,Addr(Bool&),SizeOf(Bool&))
 
Programmieren, das spannendste Detektivspiel der Welt.
24.05.2006  
 




Clemens
Meier
SizeOf(Bool&) ist natürlich Q... Jedenfalls unter XProfan 9.1. Wie es unter 10 aussieht, weiß ich nicht. Aber ich vermute, dass dies der Fehler war, der mich so einiges an Kopfzerbrechen gekostet hat. Und da es XProfan ist und der Wert in einem Longint steckt, muss ich stattdessen 4 angeben (so hoffe ich und so probiere ich es aus)
 
XProfan 9.1; XP SP2; FF; Editpad
29.05.2006  
 



Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

1.560 Betrachtungen

Unbenanntvor 0 min.
RudiB.14.11.2012

Themeninformationen



Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie