Español
Foro

Bugreport / kleine Fehlerchen

 
- Página 1 -



Ragnar
Rehbein
hallo IF !

auch si du en el moment wichtigere sorgen hast, kurz 3 kleine fehlerchen:
1.
KompilierenMarcaSeparación
print "Hallo" ^
waitinpute>

bringt el XPSE para absturz. el ^ me está de versehen en el quelltext geraten (kleiner ausrutscher, el Yo no bemerkt habe oder waren lo el kinder ??? con ihren süßen grabbelpfötchen ???).

2.
KompilierenMarcaSeparación
 {$batch copy "xx x.exe" "c:xx x.exe"}
>

es no posible. Yo teilweise leerzeichen en el dateinamen o. pfadnamen. hay dafür una lösung ?

3.
KompilierenMarcaSeparación
 $I debugprint.inc
>

includedateien voluntad sin pfadangabe No se ha encontrado, si el programmdatei en un otro verzeichnis befindet como XPSE.
m:ehbeinxprofan - XPSE y compiler
m:ehbeinxprofaninclude - z.b. debugprint.inc
m:ehbeinxprofanprojekteest - z.b. xxx.prf

Yo benutze XPSE seit einiger zeit a fast 100%.
neben el Compileroptionen el el arbeit erleichtern y beschleunigen, Es el .enh-datei el genialste. a cada programmversion el en el einsatz es hebe Yo el entsprechende .enh-datei en.
fehlermeldungen que en una zeilennummer beziehen, dejar se así genial simplemente encontrar.

toll daß lo XPSE son

r.r.
 
19.01.2005  
 



 
- Página 2 -



CB
ExceptionEAccessViolation en el Modul profano.exe en ...
Meintet Ihr el oder es el una otro Fehler?
(Posesiones ahora todos ^ en el aktuellen Code rausgenommen)

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



[quote:7bc750c6e8=Christian Bernfeld]ExceptionEAccessViolation en el Modul profano.exe en ...
Meintet Ihr el oder es el una otro Fehler?
(Posesiones ahora todos ^ en el aktuellen Code rausgenommen)

Saludo, Christian[/quote:7bc750c6e8]Im Modul Profano.exe? Das hätte entonces nix con el XPSE mehr a tun. Aus el Code el Usted me PMt hast Yo simplemente todos ^ herausgenommen - y xpse ha se no mehr beschwert. Den Bug voluntad Yo aber natürlich entfernen.

Was se ejecuta como ahora con usted falso?

Con el el Assemblerblöcken es qué más - con Franks XPIA en el Zusammenhang con el XPSE puede ser reines Ensamblador en el Profansource anwenden - Yo glaube aber du hast no ASM-Passagen drin.

Salve, IF
 
11.02.2005  
 




Frank
Abbing
Hi,

lo sieht wohl así de, como sería XPSE el código otra vez y otra vez durchsuchen. Hört nada mehr así en, producido aber no Fehler.
 
11.02.2005  
 



Aha - Yo hatte qué más Bemerkt - kannst Usted me dein Codepiece geben?

Salve, IF
 
11.02.2005  
 




Frank
Abbing
Hier es él:
KompilierenMarcaSeparación
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
End

Dieser Code produziert una Anwendungsfehler:
KompilierenMarcaSeparación
 {$cleq}
Declarar texto$,Contraseña$,nurso$
text$="Zunächst una vez: Für Ensamblador benötigt uno no grosse Anzahl de Befehlen, con 10 Befehlen "
text$=texto$+"(total hay encima 90) es uno ya bien bedient, alles otro es unnütz, porque el "
text$=texto$+"MASM32 Ensamblador High-Level-Syntax (.mientras que / .endw / .if / .endif usw.) unterstützt."
text$=texto$+"Und su es una Profano-User ya el meiste bekannt."
passwort$="Ganz geheimes Contraseña."
CLS
Imprimir "Originaltext:"
Imprimir
Color 7,15
Imprimir texto$
Color 0,15
Imprimir
Imprimir
ASM-Block
Crypt(), una XOR-Verschlüsselung mittels Contraseña
Übernommen de meiner ProSpeed.dll
Parámetro:
1) Bereichsvariable oder String, en el el Daten gespeichert son.
2) Anzahl a verschlüsselnder Bytes
3) Pointer en una String (oder Zona), en el el Contraseña gespeichert es
4) Longitud des Passworts
Beim zweiten Aufruf con el gleichen Parametern se el ursprung otra vez producido.

AsmStart Crypt

    Parámetros addr(texto$),Len(texto$),addr(Contraseña$),Len(Contraseña$)
    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

Imprimir "Verschlüsselter Texto:"
Imprimir
Color 7,15
Imprimir texto$
Color 0,15
Imprimir
Imprimir
Jetzt kommt una Besonderheit...
Wir rufen unseren ersten ASM-Block una zweites veces en !!! Ohne Prozedure !
xpia$ es el Name unserer kompletten Assemblerlibrary.
Crypt es hier el Name des Assemblerblocks, danach folgen etventuelle Parámetro.
Dabei es lo incluso egal, si el zweite Aufruf después de el Assemblerblock es oder ya davor !
Wer el ahora no verstanden ha, el debería el ASM-Block Crypt más bien en una Profano-Prozedure
packen, y stattdessen más bien el Prozedure aufrufen. Aber así va lo auch.
Externo(xpia$,"Crypt",addr(texto$),Len(texto$),addr(Contraseña$),Len(Contraseña$))
Imprimir "Und el otra vez hergestellte Texto:"
Imprimir
Color 7,15
Imprimir texto$
WaitInput
End

Dieser hier produziert: Befehl unbekannt: Mientras que
KompilierenMarcaSeparación
Anwendungsfehler:
KompilierenMarcaSeparación
 {$cleq}
Declarar sum&,bereich#,texto$
Cls

If 0

    AsmStart Checksumme

        Parámetros addr(texto$),Len(texto$)
        mov ebx,para1
        mov esi,para2
        xor ecx,ecx
        xor edx,edx
        xor eax,eax

        .if 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. Man podría auch una Zona angeben."
Imprimir Externo(xpia$,"Checksumme",addr(texto$),Len(texto$))
text$="Probestring. Man podría auch una Zona angeben"
Imprimir Externo(xpia$,"Checksumme",addr(texto$),Len(texto$))
text$=" Probestring. Man podría auch una Zona angeben."
Imprimir Externo(xpia$,"Checksumme",addr(texto$),Len(texto$))
text$="Probestring. Mbn podría auch una Zona angeben."
Imprimir Externo(xpia$,"Checksumme",addr(texto$),Len(texto$))
text$="Probestring. Man podría auch una Bdreich angeben."
Imprimir Externo(xpia$,"Checksumme",addr(texto$),Len(texto$))
Imprimir
Dim bereich#,1000000
Claro bereich#
Imprimir Externo(xpia$,"Checksumme",bereich#,1000000)
Byte bereich#,100=1
Imprimir Externo(xpia$,"Checksumme",bereich#,1000000)
Disponer bereich#
WaitInput
End

Usw...
 
11.02.2005  
 




Frank
Abbing
Nochmal Yo,

sorry, hatte con uno no mehr aktuellen Versión getestet. El meißten Codes laufen ahora. Mindestens una Code producido aber después de como antes una Fehler:
KompilierenMarcaSeparación
 {$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/'>End
 
11.02.2005  
 



Yo habs grade getestet - se ejecuta einwandfrei.

Tuve aber glaube vergessen a erwähnen el Remarks via ; en ASM-Blöcken no mehr erlaubt son. Dies Es el Vorbereitung a ;-Zeilentrennung.

Tal vez muddu el *DLL veces entfernen - also en me funzt lo super ahora.

Salve, IF
 
11.02.2005  
 




CB
[quote:ec61eef52b=iF][quote:ec61eef52b=Christian Bernfeld]ExceptionEAccessViolation en el Modul profano.exe en ...
Meintet Ihr el oder es el una otro Fehler?
(Posesiones ahora todos ^ en el aktuellen Code rausgenommen)

Saludo, Christian[/quote:ec61eef52b]Im Modul Profano.exe? Das hätte entonces nix con el XPSE mehr a tun. Aus el Code el Usted me PMt hast Yo simplemente todos ^ herausgenommen - y xpse ha se no mehr beschwert. Den Bug voluntad Yo aber natürlich entfernen.

Was se ejecuta como ahora con usted falso?

Con el el Assemblerblöcken es qué más - con Franks XPIA en el Zusammenhang con el XPSE puede ser reines Ensamblador en el Profansource anwenden - Yo glaube aber du hast no ASM-Passagen drin.

Salve, IF[/quote:ec61eef52b]
Nö, con ASM tener Yo (todavía) nix al Hut.
Das komische es sólo, el .enh se erstellt, el Prog startet normal, Yo dar una Pat.-ID una - Peng.
Wenn Yo el gleiche encima el Ver. 8 Interpreter mache, läufts normal.
Jetzt Yo auch Ver. 9 (el letzte) probiert - como fliege Yo auch con uno Schutzverletzung fuera!
Sieht fast así de, como müßte Yo Usted una todavía größeres Paket schnüren...
Oder hast Es usted un otro Concepto?

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



Kein größeres Packet. Einfach sólo el Quellcode + enh. So debería lo ir.

Aber si la P9 ya rausschmeist - ists wohl kein xpse-problem. Yo sería lo me sin embargo trotzdem gerne anschauen.

Salve, IF
 
11.02.2005  
 




CB
Ok, kann Yo Usted abends de zuhause de enviar.

Etwas klüger bin Yo mittlerweile:
Posesiones en alter Gewohnheit unos pocos REM stehengelassen, korr.
Aber ahora meckert el XProfan-Compiler 9: Stringende fehlt en
KompilierenMarcaSeparación
Any idea?

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



Sí - bekannter DefBug vom P9.

Im aktuellen aber todavía no herausgegebenen Release se dies Fijo ser.

Salve, IF
 
11.02.2005  
 




CB
Posesiones el Línea veces testhalber auskommentiert, entonces lief el Compilierungsprozeß por, con XPSE fliege Yo aber siempre todavía de mi Prog fuera (Interpretermodus)

Yo schick Usted doch veces el Code + Enh, Usted findst como sicher más rápido el (el)Fehler, obwohl auch el Profano2cpp nix meldet!
Mache mich veces en el Heimweg.

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




Respuesta


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

24.714 Views

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

Themeninformationen



Admins  |  AGB  |  Applications  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Entrance  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie