Italia
C ++ Foro

Probleme mit %IOResult und API-Rückgaben

 

Michael
Dell
Ciao,

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
Downloadcounter200
Download
3 kB
Kurzbeschreibung: %IOResult_Err
Hochgeladen:18.12.2008
Downloadcounter347
Download
 
Salu Michael...

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




Michael
Dell
Ciao,

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 per die Hinweise! Ich werde versuchen, mich possibile 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 naturalmente 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 sufficiente 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  
 



Answer


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

8.395 Views

Untitledvor 0 min.
funkheld17.12.2013
Gary1234508.04.2013
Achim Engelhardt21.12.2012
Gabor Krizsma08.08.2011
Di più...

Themeninformationen

Dieses Thema hat 2 subscriber:

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


Admins  |  AGB  |  Applications  |  Autori  |  Chat  |  Informativa sulla privacy  |  Download  |  Entrance  |  Aiuto  |  Merchantportal  |  Impronta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Giochi  |  Cerca  |  Support

Ein Projekt aller XProfaner, die es gibt!


Il mio XProfan
Private Notizie
Eigenes Ablageforum
Argomenti-Merkliste
Eigene Beiträge
Eigene Argomenti
Zwischenablage
Annullare
 Deutsch English Français Español Italia
Traduzioni

Informativa sulla privacy


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