Forum | | | | - page 1 - |
|  Ragnar Rehbein | allô IF !
aussi si du im moment wichtigere sorgen la hâte, kurz 3 kleine fehlerchen: 1. KompilierenMarqueSéparation 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 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. |
| | | | |
| | | | - 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 |
| | | | |
| |  | [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 |
| | | | |
| |  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. |
| | | | |
| |  | Aha - je hatte quoi d'autre Bemerkt - peux Du mir dein Codepiece donner?
Salve, iF |
| | | | |
| |  Frank Abbing | ici ist il: KompilierenMarqueSéparationIn 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...  |
| | | | |
| |  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
|
| | | | |
| |  | 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 |
| | | | |
| |  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 |
| | | | |
| |  | 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 |
| | | | |
| |  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 |
| | | | |
| |  | oui - bekannter DefBug vom P9.
Im aktuellen mais encore pas herausgegebenen Release soll ca behoben son.
Salve, iF |
| | | | |
| |  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 |
| | | | |
|
répondreOptions du sujet | 25.324 Views |
Themeninformationencet Thema hat 8 participant: |
|