Français
Forum

Bugreport / kleine Fehlerchen

 
- page 1 -



Ragnar
Rehbein
allô IF !

aussi si du im moment wichtigere sorgen la hâte, kurz 3 kleine fehlerchen:
1.
KompilierenMarqueSéparation
print "Hallo" ^
waitinpute>

bringt den XPSE zum absturz. cela ^ c'est moi aus versehen dans den quelltext geraten (kleiner ausrutscher, den je pas bemerkt habe ou bien étions es qui kinder ??? avec ihren süßen grabbelpfötchen ???).

2.
KompilierenMarqueSéparation
 {$batch copy "xx x.exe" "c:xx x.exe"}
>

ist pas possible. j'ai partiellement leerzeichen dans den dateinamen bzw. pfadnamen. gibt es pour une lösung ?

3.
KompilierenMarqueSéparation
 $I debugprint.inc
>

includedateien volonté sans pfadangabe pas trouvé, si sich qui programmdatei dans einem anderen verzeichnis est comme XPSE.
m:ehbeinxprofan - XPSE et compiler
m:ehbeinxprofaninclude - z.b. debugprint.inc
m:ehbeinxprofanprojekteest - z.b. xxx.prf

je benutze XPSE depuis einiger zeit trop presque 100%.
près de den Compileroptionen qui qui travail erleichtern et beschleunigen, ist qui .enh-fichier cela genialste. trop chacun programmversion qui im einsatz ist hebe je mir qui entsprechende .enh-fichier sur.
fehlermeldungen qui sich sur une zeilennummer beziehen, laisser sich so genial simple trouver.

toll qui es XPSE gibt

r.r.
 
19.01.2005  
 



 
- page 2 -



CB
ExceptionEAccessViolation im Modul profan.exe chez ...
Meintet son cela ou bien ist cela un anderer faute?
(Habe maintenant alle ^ im aktuellen Code rausgenommen)

Salut, Christian
 
XProfan 8/9.1, Win XP, AMD 64/3200
11.02.2005  
 



[quote-part:7bc750c6e8=Christian Bernfeld]ExceptionEAccessViolation im Modul profan.exe chez ...
Meintet son cela ou bien ist cela un anderer faute?
(Habe maintenant alle ^ im aktuellen Code rausgenommen)

Salut, Christian[/quote-part:7bc750c6e8]Im Modul Profan.exe? cela hätte ensuite nix avec dem XPSE plus trop 1faire. Aus dem Code den Du mir PMt la hâte habe je simple alle ^ herausgenommen - et xpse hat sich pas plus beschwert. Den Bug werde je mais naturellement entfernen.

quoi fonctionne là maintenant chez Dir faux?

Avec l' den Assemblerblöcken ist quoi d'autre - avec Franks XPIA im Zusammenhang avec dem XPSE peux on reines Assembler im Profansource anwenden - je crois mais tu as aucun ASM-Passagen drin.

Salve, iF
 
11.02.2005  
 




Frank
Abbing
Hi,

es sieht wohl so aus, comme serait XPSE den Code wieder et wieder fouiller. Hört gar pas plus avec cela sur, erzeugt mais keinen faute.
 
11.02.2005  
 



Aha - je hatte quoi d'autre Bemerkt - peux Du mir dein Codepiece donner?

Salve, iF
 
11.02.2005  
 




Frank
Abbing
ici ist il:
KompilierenMarqueSéparation
In diesem Democode befinden sich zwei Assemblerblöcke.
Eine versteckt sich in einer Profan-Prozedure und lädt eine Datei via API. Das ginge auch mittels Profan,
aber das hier ist ja ein Democode.
Der andere Assemblerblock zählt nach, wie oft die einzelnen Buchstaben (A-Z, bzw. a-z) in einer
Textdatei vorkommen.
 {$cleq}
Declare x&,y&,z&,text$,text#,tabelle#,bytes&
Prozedure mit Assemblerblock.
ReadFile dateiname$, Speicher wohin die Datei geladen werden soll, Offset im Speicher, Grösse der Datei

Proc ReadFile

    Parameters a1$,a2&,a3&,a4&
    ASM Block

    AsmStart ReadFileFast

        Parameters addr(a1$),a2&,a3&,a4&
        Return a3&
        jmp @F              ;Datenblock überspringen. @F/@@: ist eine Sondervariable genau für diesen Zweck. Kann in
        ;einem Block auch mehrmals verwendet werden.
        readed    dd  0
        handle    dd  0
        @@:
        invoke CreateFile,para1,GENERIC_READ,0,0,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0
        mov   handle,eax

        .if eax>0

            mov   eax,para2
            add   eax,para3
            invoke ReadFile,handle,eax,para4,addr readed,0
            invoke CloseHandle,handle
            mov   eax,readed

        .endif

    AsmEnd

    ASM Block Ende
    Return a3&

EndProc

Window 0,0-%maxx,%maxy
CLS
text$=@LoadFile$("Lade eine Textdatei","*.TXT")
x&=@FileSize(text$)

If x&>0

    Print text$
    Print Str$(x&)+" Bytes geladen."
    Print
    Print "Anzahl Buchstaben, die im Text gefunden wurden:"
    Dim text#,x&+1
    ReadFile text$,text#,0,x&
    x&=@&(0)
    bytes&=x&

    If x&

        Dim tabelle#,108  26 x 4 + 4
        Clear tabelle#
        ASM Block

        AsmStart Count

            Parameters text#,tabelle#,x&
            invoke CharUpperBuff,para1,para3
            mov ecx,para3
            mov ebx,para1
            mov edx,para2

            .repeat

                mov eax,0
                mov al,[ebx]
                inc ebx                         ;ebx um 1 erhöhen

                .if (al>=65) && (al<=90)

                    sub eax,65
                    shl eax,2                     ;logisches Verschieben der Bits nach links. Bewirkt: eax * 4. Schneller als "mul"
                    add eax,edx
                    mov edi,1
                    add [eax],edi

                .endif

                dec ecx

            .until ecx==0

        AsmEnd

        ASM Block Ende
        Decimals 2
        y&=0

        Whileloop 26

            x&=Long(tabelle#,y&*4)
            Print Chr$(y&+97)+" oder "+Chr$(y&+65)+" = "+Str$(x&)+" x."
            y&=y&+1

        EndWhile

        Dispose tabelle#

    EndIf

    Dispose text#

EndIf

WaitInput
Fin

cette Code produziert une Anwendungsfehler:
KompilierenMarqueSéparation
 {$cleq}
Déclarer text$,passwort$,nurso$
text$="Zunächst einmal: Pour Assembler nécessaire on aucun grosse Anzahl de Befehlen, avec 10 Befehlen "
text$=text$+"(en tout gibt es sur 90) ist on déjà bien bedient, alles autre ist unnütz, weil qui "
text$=text$+"MASM32 Assembler High-Level-Syntax (.tandis que / .endw / .si / .endif usw.) soutenu."
text$=text$+"Und en ist einem Profan-User déjà cela meiste bekannt."
passwort$="Ganz geheimes Mot de passe."
CLS
Imprimer "Originaltext:"
Imprimer
Color 7,15
Imprimer text$
Color 0,15
Imprimer
Imprimer
ASM-Block
Crypt(), une XOR-Verschlüsselung mittels Mot de passe
Übernommen aus meiner ProSpeed.dll
paramètre:
1) Bereichsvariable ou bien String, dans qui qui données gespeichert sommes.
2) Anzahl trop verschlüsselnder Bytes
3) Pointer sur une String (ou bien Bereich), dans dem cela Mot de passe gespeichert ist
4) Longueur des Passworts
Beim zweiten Aufruf avec den gleichen Parametern wird qui ursprung wieder hergestellt.

AsmStart Crypt

    Paramètres addr(text$),Len(text$),addr(passwort$),Len(passwort$)
    mov   ecx,para2
    mov   edx,para1
    mov   ebx,para3
    mov   esi,para4
    mov   edi,0
    schleife:
    mov   al,[edx]
    xor   al,[ebx+edi]
    mov   [edx],al
    inc   edx
    inc   edi
    cmp   esi,edi
    jne   sprung
    mov   edi,0
    sprung:
    sub   ecx,1
    jne   schleife

AsmEnd

Imprimer "Verschlüsselter Text:"
Imprimer
Color 7,15
Imprimer text$
Color 0,15
Imprimer
Imprimer
maintenant venez une Besonderheit...
Wir appeler unseren ersten ASM-Block un zweites la fois sur !!! sans Prozedure !
xpia$ ist qui nom unserer kompletten Assemblerlibrary.
Crypt ist ici qui nom des Assemblerblocks, après folgen etventuelle paramètre.
Dabei ist es sogar égal, si qui zweite Aufruf pour dem Assemblerblock erfolgt ou bien déjà devant !
qui cela maintenant pas verstanden hat, qui sollte den ASM-Block Crypt lieber dans une Profan-Prozedure
saisir, et stattdessen lieber qui Prozedure appel. mais so allez es aussi.
Externe(xpia$,"Crypt",addr(text$),Len(text$),addr(passwort$),Len(passwort$))
Imprimer "Und qui wieder hergestellte Text:"
Imprimer
Color 7,15
Imprimer text$
WaitInput
Fin

cette ici produziert: Befehl inconnu: Tandis que
KompilierenMarqueSéparation
Anwendungsfehler:
KompilierenMarqueSéparation
 {$cleq}
Déclarer sum&,bereich#,text$
Cls

Si 0

    AsmStart Checksumme

        Paramètres addr(text$),Len(text$)
        mov ebx,para1
        mov esi,para2
        xor ecx,ecx
        xor edx,edx
        xor eax,eax

        .si esi>=0

            schleife:
            mov al,[ebx]
            add edx,eax
            add edx,ecx
            rol edx,8
            inc ecx
            inc ebx
            cmp ecx,esi
            jne schleife

        .endif

        mov eax,edx

    AsmEnd

EndIf

text$="Probestring. on pourrait aussi une Bereich angeben."
Imprimer Externe(xpia$,"Checksumme",addr(text$),Len(text$))
text$="Probestring. on pourrait aussi une Bereich angeben"
Imprimer Externe(xpia$,"Checksumme",addr(text$),Len(text$))
text$=" Probestring. on pourrait aussi une Bereich angeben."
Imprimer Externe(xpia$,"Checksumme",addr(text$),Len(text$))
text$="Probestring. Mbn pourrait aussi une Bereich angeben."
Imprimer Externe(xpia$,"Checksumme",addr(text$),Len(text$))
text$="Probestring. on pourrait aussi une Bdreich angeben."
Imprimer Externe(xpia$,"Checksumme",addr(text$),Len(text$))
Imprimer
Faible bereich#,1000000
Claire bereich#
Imprimer Externe(xpia$,"Checksumme",bereich#,1000000)
Byte bereich#,100=1
Imprimer Externe(xpia$,"Checksumme",bereich#,1000000)
Dispose bereich#
WaitInput
Fin

Usw...
 
11.02.2005  
 




Frank
Abbing
Nochmal je,

sorry, hatte avec einer pas plus aktuellen Version getestet. qui meißten Codes courir maintenant. Mindestens un Code erzeugt mais pour comment avant une faute:
KompilierenMarqueSéparation
 {$cleq}
Declare dh&,text$,x&,y&,z&
 {$replace 1:"_Schleifen_enh"}
Def Schleife(1) !^1^,"Schleife"
dh&=usedll(xpia$)
CLS
Print xpia$
ASM-Block

If 0

    AsmStart Schleife

        Parameters x&
        mov ecx,para1   ;Unser Parameter, also 100 Millionen
        schleife:
        dec ecx         ;ecx=ecx-1
        jnz schleife    ;verzweige, wenn das zuletzt benutze Register (also ECX) nicht 0 ist
        mov eax,ebx

    AsmEnd

Endif

Warten, bis alle Laufwerke aus sind.
Noch aktive Laufwerke verfälschen den Geschwindigkeitstest.
Print
Print "3 Sekunden warten, bis alle Laufwerksaktivitäten versiegt sind."
Print
Sleep 3000
Assemblerschleife, 100 Millionen mal durchlaufen:
Wir benutzen unser generierte Dll im geladenen Zustand, weil allein
Profans Aufruf von "External" 16 Millisekunden für jede Ausführung benötigt...
x&=100000000
Print "Assemblerschleife wird jetzt "+Str$(x&)+" mal durchlaufen."
y&=&GetTickCount
Schleife(x&)
y&=&GetTickCount-y&
Print "Fertig in "+Str$(y&)+" Millisekunden."
Print
Profanschleife, 100 Millionen mal durchlaufen:
x&=100000000
Print "Profanschleife wird jetzt "+Str$(x&)+" mal durchlaufen."
y&=&GetTickCount

Whileloop x&

EndWhile

y&=&GetTickCount-y&
Print "Fertig in "+Str$(y&)+" Millisekunden."
WaitInput
freedll dh&
../../funktionsreferenzen/XProfan/end/'>Fin
 
11.02.2005  
 



je habs grade getestet - fonctionne einwandfrei.

je hatte mais glaube oublier qc trop erwähnen cela Remarks via ; dans ASM-Blöcken pas plus erlaubt sommes. ca ist qui Vorbereitung zur ;-Zeilentrennung.

peut-être muddu qui *DLL la fois entfernen - alors chez mir funzt es super maintenant.

Salve, iF
 
11.02.2005  
 




CB
[quote-part:ec61eef52b=iF][quote-part:ec61eef52b=Christian Bernfeld]ExceptionEAccessViolation im Modul profan.exe chez ...
Meintet son cela ou bien ist cela un anderer faute?
(Habe maintenant alle ^ im aktuellen Code rausgenommen)

Salut, Christian[/quote-part:ec61eef52b]Im Modul Profan.exe? cela hätte ensuite nix avec dem XPSE plus trop 1faire. Aus dem Code den Du mir PMt la hâte habe je simple alle ^ herausgenommen - et xpse hat sich pas plus beschwert. Den Bug werde je mais naturellement entfernen.

quoi fonctionne là maintenant chez Dir faux?

Avec l' den Assemblerblöcken ist quoi d'autre - avec Franks XPIA im Zusammenhang avec dem XPSE peux on reines Assembler im Profansource anwenden - je crois mais tu as aucun ASM-Passagen drin.

Salve, iF[/quote-part:ec61eef52b]
Nö, avec ASM hab je (encore) nix am Hut.
cela komische ist seulement, qui .enh wird erstellt, cela Prog startet normal, je gebe une Pat.-ID un - Peng.
si je cela gleiche sur den Ver. 8 Interpreter fais, läufts normal.
maintenant habe je aussi Ver. 9 (qui dernier) probiert - là fliege je aussi avec einer Schutzverletzung raus!
Sieht presque so aus, comme devrait je Dir un encore größeres paquet schnüren...
ou bien la hâte Vous autre concept?

Salut, Christian
 
XProfan 8/9.1, Win XP, AMD 64/3200
11.02.2005  
 



ne...aucune größeres Packet. simple seulement den Quellcode + enh. So devrait es aller.

mais si le P9 déjà rausschmeist - ists wohl ne...aucune xpse-problem. je serait es mir cependant quand même volontiers anschauen.

Salve, iF
 
11.02.2005  
 




CB
Ok, peux je Dir le soir de zuhause aus envoyons.

quelque chose klüger suis je mittlerweile:
Habe dans alter Gewohnheit un paire REM stehengelassen, korr.
mais maintenant meckert qui XProfan-Compiler 9: Stringende fehlt chez
KompilierenMarqueSéparation
Any idée?

Salut, Christian
 
XProfan 8/9.1, Win XP, AMD 64/3200
11.02.2005  
 



oui - bekannter DefBug vom P9.

Im aktuellen mais encore pas herausgegebenen Release soll ca behoben son.

Salve, iF
 
11.02.2005  
 




CB
Habe qui la ligne la fois testhalber auskommentiert, ensuite lief qui Compilierungsprozeß par, avec XPSE fliege je mais toujours aus meinem Prog raus (Interpretermodus)

je schick Dir doch la fois den Code + Enh, Du findst là sûrement plus rapide den (qui)faute, quoique aussi qui Profan2cpp nix meldet!
fais mich la fois sur den Heimweg.

Salut, Christian
 
XProfan 8/9.1, Win XP, AMD 64/3200
11.02.2005  
 




répondre


Topictitle, max. 100 marque.
 

Systemprofile:

ne...aucune Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

s'il te plaît s'inscrire um une Beitrag trop verfassen.
 

Options du sujet

25.324 Views

Untitledvor 0 min.
Uwe Starke06.06.2023
Michael Borowiak15.11.2014
Roland Schäffer06.01.2011

Themeninformationen



Admins  |  AGB  |  Applications  |  Auteurs  |  Chat  |  protection des données  |  Télécharger  |  Entrance  |  Aider  |  Merchantportal  |  Empreinte  |  Mart  |  Interfaces  |  SDK  |  Services  |  Jeux  |  cherche  |  Support

un projet aller XProfaner, qui il y a!


Mon XProfan
Privé Nouvelles
Eigenes Ablageforum
Sujets-La liste de voeux
Eigene Posts
Eigene Sujets
Zwischenablage
Annuler
 Deutsch English Français Español Italia
Traductions

protection des données


Wir verwenden Cookies seulement comme Session-Cookies à cause de qui technischen Notwendigkeit et chez uns gibt es aucun Cookies de Drittanbietern.

si du ici sur unsere Webseite klickst ou bien navigierst, stimmst du unserer Erfassung de Informationen dans unseren Cookies sur XProfan.Net trop.

Weitere Informationen trop unseren Cookies et en supplément, comment du qui Kontrolle par-dessus behältst, findest du dans unserer nachfolgenden Datenschutzerklärung.


d'accordDatenschutzerklärung
je voudrais keinen Cookie