Deutsch
C ++ Forum

Probleme mit %IOResult und API-Rückgaben

 

Michael
Dell
Hallo,

weiß Du hast viel um die Ohren aber eh ichs vergesse Post ichs mal lieber.

Anscheinend gibt es Unterschiedliche %IOResult Werte.



hier der Source:
KompilierenMarkierenSeparieren
Def sErrMod(1) External("KERNEL32.DLL","SetErrorMode",&(1))

Proc DrvOK

    Parameters IDR_LW$
    Case (Len(IDR_LW$) < 1): Return -1
    IDR_LW$     = (Upper$(Left$(IDR_LW$,1)) + ":\")
    Var IDR_OEMod&  = sErrMod(1)
    Var IDR_OldDir$ = GetDir$("@")
    ChDir IDR_LW$
    Var ttt& = %IOResult
    sErrMod(IDR_OEMod&)
    ChDir IDR_OldDir$
    Return ttt&

EndProc

Window 280,160-640,480
Locate 2,0

WhileLoop 65,90

    Print (Chr$(&loop) + ":\ %IOResult = " + Str$(DrvOK(Chr$(&loop))))

EndWhile

WaitInput
End

Folgende APIs sollten des gleiche Handle zurückgeben,
bei Profan2CPP gibts aber nen kleinen Unterschied?
KompilierenMarkierenSeparieren
Def GetClassLong(2) External("USER32.DLL","GetClassLongA",&(1),&(2))
Def GetCursor(0)    External("USER32.DLL","GetCursor")
Cls
Print ("GetClassLong()  = " + Str$(GetClassLong(%Desktop,-12)))
Print ("GetCursor()     = " + Str$(GetCursor()))                   hier gibts eine kleine Abweichung (echt seltsam!)
WaitInput
End

5 kB
Kurzbeschreibung: Beispiel
Hochgeladen:18.12.2008
Ladeanzahl192
Herunterladen
3 kB
Kurzbeschreibung: %IOResult_Err
Hochgeladen:18.12.2008
Ladeanzahl337
Herunterladen
 
Salu Michael...

Hab zwar krumme Fieß awer dofir e' ecklich Gsicht! 
18.12.2008  
 




Michael
Dell
Hallo,

hier noch ne Kleinigkeit die in einem (zugegeben nicht vorgesehenen) Fall sogar zum Absturz von Profan2CPP führt:
KompilierenMarkierenSeparieren
Var T1! = ($7FFFFFFF * 4)
Var T2! = (2147483647 * 4)   Integer arithmetic overflow in function __stdcall ProfanThreadProc(void *) (Borland 5.5)
Programm wird erzeugt zeigt hier aber nur Quark an.
Var T1& = ($7FFFFFFF * 1)
Var T2& = (2147483647 * 1)   Integer arithmetic overflow in function __stdcall ProfanThreadProc(void *) (Borland 5.5)
Programm wird erzeugt zeigt hier aber nur Quark an.
Hier stürtzt Profan2CPP ab!!!! (XProfan igoriert es) aber der Fehler wird von beiden nicht gemeldet!
Def !XXXX1 ($7FFFFFFF * 4)
Def &XXXX2 (2147483647 * 1)
Cls
Print (       "T1! = " + Str$(T1!))
Print (       "T2! = " + Str$(T2!))
Print (     "
T1& = " + Str$(T1&))
Print (       "T2& = " + Str$(T2&))
Print ("
!XXXX1 = " + Str$(!XXXX1))
Print (    "&XXXX2 = " + Str$(&XXXX2))
WaitInput
End
 
Salu Michael...

Hab zwar krumme Fieß awer dofir e' ecklich Gsicht! 
18.12.2008  
 




Sebastian
König
Hallo Michael,

danke für die Hinweise! Ich werde versuchen, mich möglichst bald darum zu kümmern. Bei %IOResult hatte ich in vielen Fällen tatsächlich Probleme, herauszufinden, auf welcher Grundlage Delphi die Werte setzt. Vielleicht kann ich mit Deinem Testcode etwas herausfinden. Priorität hat natürlich erstmal der Absturz...

MfG

Sebastian
 
Windows XP, XProfan/Profan² 4.5 bis 11
Profan2Cpp-Homepage:  [...] 
Alte Profan²-Seite:  [...] 
18.12.2008  
 




Sebastian
König
Hallo Michael,

nachdem ich mir eine längere Pause gegönnt habe, bin ich jetzt an der Sache dran. Den Fehler, der zu dem Absturz führt, habe ich schon behoben. Die Ausgabe des Codes ist dennoch nicht die gleiche unter XProfan und Profan2Cpp, was ich leider auch nicht so einfach ändern kann... Es gibt jedoch einen einfachen Workaround, den ich sowieso als besseren Stil bezeichnen würde: Wenn ein Ausdruck den LongInt-Wertebereich übersteigt und als Fließkommazahl behandelt werden soll, sollte einer der Operanden explizit eine Fließkommazahl sein. In Deinem Beispiel genügt es schon, in

Var T1! = ($7FFFFFFF * 4)

die 4 in 4.0 zu ändern.

Ich sehe mir dann mal die Sache mit %IOResult an.

MfG

Sebastian
 
Windows XP, XProfan/Profan² 4.5 bis 11
Profan2Cpp-Homepage:  [...] 
Alte Profan²-Seite:  [...] 
15.01.2009  
 




Sebastian
König
Nachtrag: Ich habe inzwischen die anderen Probleme behoben. Mit Version 2.0a, die erscheinen wird, sobald ich die Features von XProfan 11.1 fertig umgesetzt habe, sollte dann alles korrekt funktionieren.
 
Windows XP, XProfan/Profan² 4.5 bis 11
Profan2Cpp-Homepage:  [...] 
Alte Profan²-Seite:  [...] 
15.01.2009  
 




Michael
Dell
Klasse, danke Dir
 
Salu Michael...

Hab zwar krumme Fieß awer dofir e' ecklich Gsicht! 
15.01.2009  
 



Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

8.275 Betrachtungen

Unbenanntvor 0 min.
funkheld17.12.2013
Gary1234508.04.2013
Achim Engelhardt21.12.2012
Gabor Krizsma08.08.2011
Mehr...

Themeninformationen

Dieses Thema hat 2 Teilnehmer:

Sebastian König (3x)
Michael Dell (3x)


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