Probleme mit XPIA



Probleme mit XPIA

Christian H., 02.05.2008 17:19: Hallo,
mein Name ist Christian Hahn. Nachdem ich nach längerer Zeit wieder einmal ein kleines Programm für mich brauche und ich das natürlich mit Profan erstelle habe ich folgendes Problem.
In diesem Programm benutze ich XPIA .
Diese Codezeilen produzieren einen Fehler:

invoke FileTimeToLocalFileTime,ADDR wfd.ftLastWriteTime,ADDR lFTime
invoke FileTimeToSystemTime,ADDR lFTime,ADDR SysTime
Im Asm Teil benutze ich lokale Variablen. Nachdem ich den Quelltext compilert habe steht in dem File last.asm folgender Code:
nach den Lokalen Variablen

...
LOCAL lbCount         : DWORD
LocalFileTime,ADDR wfd.ftLastWriteTime,ADDR lFTime
push ebx
push edi
push esi
...
und aus meinen obigen Zeilen wird eine Zeile:

invoke FileTimeToinvoke FileTimeToSystemTime,ADDR lFTime,ADDR SysTime

Ist das ein Fehler von XPIA (Wort:local) oder ein Denkfehler von mir?
MfG Christian
PS: Ihr seid eine tolle Truppe hier.


Frank Abbing, 04.05.2008 21:39: Oh, eine Frage für mich. War auf dem Campingplatz, darum hat es was gedauert mit dem Antworten...
Welchen Fehler produzieren die beiden Zeilen denn? Hast du die Variablen wfd.ftLastWriteTime, lFTime, lFTime und SysTime denn deklariert - wenn ja, wie?
Die LOCAL-Zeile ist normal für eine ältere XPIA-Version. Inzwischen benutze ich, wenn ich mich recht entsinne, eine andere Technik. Mach doch mal ein Update.


Christian H., 04.05.2008 22:50: Hallo Frank,
hattest hoffentlich viel Spass auf dem Campingplatz, war auch auf einem, zum segeln.
Der Fehler besteht darin, dass XPIA aus dem Befehl .:: invoke FileTimeToLocalFileTime::. den Teil LocalFileTime als lokale Variable wertet und an der Stelle der lokalen Variablen einsortiert. Damit ist der Befehl nun Schrott und wird angemeckert, da der erste Teil des Befehles nun keinen Sinn mehr ergibt (FileTimeTo...). XPIA macht aus den zwei Befehlen diese Zeile:
invoke FileTimeToinvoke FileTimeToSystemTime,ADDR lFTime,ADDR SysTime
Ich hoffe mich verständlich ausgedrückt zu haben.
Variablen sind auch alle declariert.
Christian


Frank Abbing, 05.05.2008 06:40: Ja, danke! War sehr lustig beim Campen, aber auch arbeitsreich, da ich dort gerade umbaue.
Hab dein Problem verstanden. Offenbar interpretiert der MASM-Assembler das Wort Local in FileTimeToLocalFileTime falsch.
Du könntest hingehen, und im XPIA-Ordner die Datei include/basis.inc dahingehen editieren (direkt unter den Inc's), dass du der API einen neuen Namen gibst. Das geht mittels:

NeuerNameDerFunktion equ <FileTimeToLocalFileTime>
Mit dem neuen Namen sollte dann alles funktionieren.


Christian H., 05.05.2008 18:00: Hallo,
danke für den Tipp, funzt prima.
Einen hätte ich noch, wenn mir jemand mal einen Vorschlag unterbreiten könnte, wie ich in Asm rekursiv einen Verzeichnisbaum einlesen könnte wäre ich voll zufrieden.
Hintergrund ist folgender, um eine Ordnerstruktur einzulesen benutze ich zur Zeit die addfiles.dll. Anhand dieser Liste ermittle ich die Dateien in diesen Ordnern. Dies hätte ich auch gerne über diese dll gemacht, da ich aber noch weitere Infos über die einzelnen Dateien brauche (Archiv bit, Änderungszeit) habe ich mir selbst eine Asm Procedure geschrieben die auch dank Franks Hilfe funktioniert.
Über die Ordnerstruktur würde ich gern noch einen Filter laufen lassen und es währe angebracht dies gleich beim einlesen der Struktur zu erledigen. Und da ist das Problem, ich bekomme es nicht hin die Ordnerstruktur einlesen in Assembler zu programmieren. Da auch grössere Strukturen zu erwarten sind ist hier wohl Assembler angebracht.
MfG Christian


Frank Abbing, 05.05.2008 18:05: Hast du schon im offiziellen MASM-Forum nachgelesen? Ich meine mich zu erinnern, dass dort mindestens ein passender Thread vorhanden war. Den Link findest du auf meiner Seite bei den Links, aber wahrscheinlich ist er dir ohnehin schon bekannt.


Christian H., 05.05.2008 19:40: Danke für den Tipp, bin leider der englischen Sprache nicht so mächtig, werde aber versuchen mich durch zu hangeln.


Dies ist die Offlinevariante vom Thread [Probleme mit XPIA].

Valid CSS!

©2006 XProfan.Com