Français
SDK-Helfer/ Tools

JRPC neuer Präkompiler pour XProfan X4 - JRPC3

 
- page 1 -



Jens-Arne
Reumschüssel
Guten soir zusammen,

je suis kürzlich sur cela Problem gestolpert, dass XPSE une assez grand Quelldatei de Je ne plus verarbeiten konnte. Variablen wurden soudain comme pas défini gemeldet et autre "erratische" Probleme plus. je pourrait mir présenter, dass ca daran liegt, dass XPSE Schlüsselworte dans Windows-Atoms verwaltet. voilà irgendwann Schluss (chez irgendwas entre 60.000 et 70.000 Stück, wobei on considérer muss, dass XPSE qui Windows-API avec vorhält). Peut-être es mais aussi quelque chose entier d'autre, je peux oui pas dans den "Maschinenraum" de XPSE regarder.

Jedenfalls blieb mir, là XPSE pas plus gepflegt wird, rien d'autre übrig, comme cela nachzubauen. cela Ergebnis ist JRPC3.

----- Features:

*vernünftige annonce de Fehlern
*directe Anzeige des Programmablaufes dans XProfEd (sofern qui unten erhältliche aufgebohrte XProfEd verwendet wird)
*Umsetzung qui alten Profan-Syntax pour Operatoren et vieille Containerfunktionen
*extrem schnelle native fbPROCs, sofern on FreeBasic installiert hat (kostenlos, siehe Aider)
*avec fbPROCs peux zudem Inline-Assembler aussi avant XProfan X4 realisiert volonté
*extrem schnelle native pbPROCs, sofern on PureBasic installiert hat
*Echtzeitverfolgung de Variableninhalten
*simple Zeitmessungen im Programmablauf
*Profan-Kompilerdirektiven marcher enfin vernünftig (z.B. Verschachtelung)
*eingebettete Variablen marcher aussi avec Arrays
*qui meisten WIN32-API-Funktionen sommes bereits vordefiniert mitgeliefert
*API-Aufrufe sur @external(...) volonté automatisch dans @call(...)-Aufrufe mise en œuvre
*Einrückungsanalyse zum trouver de vertrackten Verschachtelungsfehlern
*Klammeranalyse zum trouver de vertrackten Klammerfehlern
*ENUMERATE-Fonctionnalité
*Assert zur Fehlerkontrolle
*es peut beliebige DLL dans qui XProfan-EXE integriert volonté, sodass vous pas avec ausgeliefert volonté doit (siehe {$WrapDll})
*simple Killen de avec JRPC3 gestarteten Programmen (interpretiert, .prc gestartet, .exe gestartet)
*extrem vite (et daher naturellement pas dans XProfan geschrieben, là une interpretierte Discours hierfür naturgemäß viel trop lente ist)
*beim Start de JRPC3 bereits vorhandene .prc-Fichiers peut zum Starten et Linken genutzt volonté (es wird un Hinweis angezeigt, dass es sich um un altes Kompilat handelt)
*qui Profan-Compiler peux zur Beschleunigung avec hoher Prozessorpriorität aufgerufen volonté
*eingebauter Update-Checker avec Télécharger, si es un Update gibt (Aider --> online pour Updates chercher)
*64- ou bien 32-bit-Version disponible (simple JRPC3_64.exe ou bien JRPC_32.exe comme Interpreter dans XProfEd hinterlegen [Optionen --> Allgemeine Einstellungen] et JRPC3 avec F7 starten) - attention, qui 64-bit-Version erzeugt naturellement aucun 64-bit-XProfan-Programme, là XProfan cela pas peux, mais JRPC3 selbst wird comme 64-bit-Programme fonctionnement
*XProfan X4-Syntax disponible (möglicherweise encore pas alles, là je probablement pas alles en benutze, mais j'ai mich um Vollständigkeit prêt - jedenfalls sommes z.B. HASH-Arrays et QUADINTs dabei)
*Interpreter, PRCs et EXEs peut avec Kommandozeilenparametern fonctionnement volonté
*Interpreter, PRCs, EXEs et XPSE peut avec Administratorrechten fonctionnement volonté
*Prozeduren, qui dans dem aktuellen Programme zwar enthalten sommes, mais pas verwendet volonté, volonté aus qui umgesetzten Dossier entfernt, à Dateigröße des Kompilats possible petite trop tenir
*Variablen, qui dans dem aktuellen Programme zwar enthalten sommes, mais pas verwendet volonté, volonté aus qui umgesetzten Dossier entfernt, à Dateigröße des Kompilats possible petite trop tenir et den Speicherverbrauch trop optimaliser
*nPROCs aus XPSE volonté automatisch avec XPE trop einer DLL mise en œuvre et qui Aufrufe qui nPROCs im Programme entsprechend angepasst, sofern XPSE vorhanden ist
*presque alles aus XPSE funktioniert aussi dans JRPC3 ({$NOERR}, {$(PRE)BATCH}, {$PUSHKEYWORD}, Interpreter, Runtime et Compiler festlegen, Shorties, ...)
*XProfEd_JR avec Voir le texte source-AutoComplete
*XProfEd_JR avec Voir le texte source-Memory-Funktion (Markierungen, trop denen zurückgesprungen volonté peux)

Einschränkungen:
-ne...aucune XPSE-Inline-Assembler, wohl mais XProfan-Inline-Assembler (y allerdings aucun Prüfungen sur Korrektheit des Codes)
-ABER: il peut XPSE aus JRPC3 heraus appel, sodass cet Fonctionnalité weiterhin disponible ist, sofern on XPSE besitzt (neuer Shorty: {$x})
-Variablen, qui dans einer Procédure pas deklariert sommes, mais "aus qui aufrufenden Procédure übernommen werden", sommes standardmäßig pas zugelassen (XProfan erlaubt cela, mais so quelque chose ist genauso tödlich comment GOTO-Anweisungen). s'il te plaît alle trop nutzenden Inputs comme paramètre transfert, et si quelque chose aus dem aufrufenden Programmteil modifié volonté muss, beim Aufruf comme paramètre z.B. @addr(x&) verwenden et dans qui Procédure parameters x# et LONG x#,0=y& nutzen.
si on mais absolument "vererbte" Variablen nutzen voudrais, peux on ca avec qui Kompilerdirektive {$Déclarer...} 1faire.

*comme Hommage à XPSE lautet qui Endung qui Ausgabedatei ".enh3"

une genauere Erläuterung qui individuel Features ist qui chm-Hilfedatei trop entnehmen, qui im Programme sous Aider --> Hilfedatei Montrer ou bien avec F1 disponible ist.

----- /Features

Herunterladen et installer:
JRPC3 peux unten heruntergeladen volonté (setup_jrpc3.exe ou bien comme ZIP-Dossier).
comme Installationsverzeichnis s'il te plaît cela XProfan-Stammverzeichnis angeben, alors dasjenige, dans dem qui Fichiers PROFANE.EXE, PROFCOMP.EXE, PRFRUN32.EXE etc. liegen. Alternativ peux qui ZIP-Dossier heruntergeladen et en le contenu manuel ins XProfan-Stammverzeichnis kopiert volonté.

Einrichtung:
JRPC3_64.exe ou bien JRPC_32.exe comme Interpreter dans XProfEd hinterlegen [Optionen --> Allgemeine Einstellungen] et JRPC3 avec F7 starten.

Alle Befehle sommes avec dem Befehl "h" comment "Hilfe" abrufbar et devrait selbsterklärend son.

Pour viele erweitere Features, qui XProfEd betreffen, comment z.B. jenes, qui la ligne, dans qui un faute auftrat, direct dans XProfEd Montrer trop peut, ist qui mitinstallierte XProfEd_JR erforderlich. Pour cette muss on alors XProfEd_JR.exe statt XProfEd.exe comme Editor benutzen. comme "goody" gibt es en supplément, dass beim sur- et Zufalten de Programmen un Fortschrittsanzeiger integriert ist (cela peux chez grand Programmen oui bekanntlich un bisschen dauern).

Es mag son, dass encore pas alles parfait funktioniert. je s'il te plaît hierfür um Nachsicht. mon  Programme laisser sich umsetzen, mais cela muss encore longtemps pas appeler, dass ca avec Programmen anderer Auteurs, qui chacun so ses Eigenheiten avons, aussi funktioniert.

Fehlermeldungen et Verbesserungsvorschläge volontiers à jreumsc@web.de ou bien ici im Forum.

Beste Grüße, Jens-Arne

2.584 kB
Bezeichnung:JRPC3
Version:10.29
Kurzbeschreibung: JRPC3-Installer
Hochgeladen:15.02.2021
Downloadcounter363
Download
1.699 kB
Bezeichnung:XProfEd_JR
Version:5.2
Kurzbeschreibung: vieille Version sans AutoComplete zur Sicherheit
Hochgeladen:15.02.2021
Downloadcounter224
Download
3.777 kB
Bezeichnung:JRPC3
Version:10.29
Kurzbeschreibung: ZIP-Dossier statt Installer
Hochgeladen:02.04.2021
Downloadcounter291
Download
 
XProfan X4 * Prf2Cpp * XPSE * JRPC3 * Win11 Pro 64bit * PC i7-7700K@4,2GHz, 32 GB RAM
PM: jreumsc@web.de
16.02.2021  
 



 
- page 11 -


« cette Beitrag wurde comme Solution gekennzeichnet. »

- page 15 -



Jens-Arne
Reumschüssel
il y a une neue Version, qui anders avec dem internen Messagehandling umgeht. s'il te plaît probier qui la fois aus. Peut-être cela Problem avec cela behoben.
 
XProfan X4
XProfan X4 * Prf2Cpp * XPSE * JRPC3 * Win11 Pro 64bit * PC i7-7700K@4,2GHz, 32 GB RAM
PM: jreumsc@web.de
24.09.2022  
 




Jens-Arne
Reumschüssel
ici incidemment encore un Beispiel, comment on avec Arrays umzugehen hätte. c'est nämlich aussi quelque chose tricky (Byte Pointer statt Integer Pointer verwenden, siehe Erklärung im Beispiel, sonst wundert on sich entier furchtbar, quelle Speicherplätze angesprochen volonté).

{$FBSYNTAX ON}

declare a%[2]

fbPROC fbArrayTest1(ByVal p As Byte Pointer) As Integer Export
poke integer,p+0,100 'ici p toujours um 4 erhöhen, là p comme Byte Pointer défini ist et FreeBasic daher beim Pointer toujours un Byte weiterzählt
poke integer,p+4,101 'cela entspricht dem intuitiven Vorgehen, si on Integers dans une Speicherbereich écrit
poke integer,p+8,102
return 0
ENDPROC

fbPROC fbArrayTest2(ByVal p As Integer Pointer) As Integer Export
poke integer,p+0,103 'ici p toujours seulement um 1 erhöhen, là p comme Integer Pointer défini ist et FreeBasic sais, comment viele Bytes dans chaque Element stecken (nämlich 4 pro Integer)
poke integer,p+1,104 'c'est *pas* absolument intuitiv; je serait quelque chose comme vermeiden et lieber Byte Pointer pour Arrays benutzen
poke integer,p+2,105
return 0
ENDPROC

cls
fbArrayTest1(@addr(a%[0]))
imprimer a%[0]
imprimer a%[1]
imprimer a%[2]
imprimer
fbArrayTest2(@addr(a%[0]))
imprimer a%[0]
imprimer a%[1]
imprimer a%[2]
waitinput
end
 
XProfan X4
XProfan X4 * Prf2Cpp * XPSE * JRPC3 * Win11 Pro 64bit * PC i7-7700K@4,2GHz, 32 GB RAM
PM: jreumsc@web.de
17.01.2022  
 




Jens-Arne
Reumschüssel
trop Deiner Frage par-dessus (nullterminierte gepushte String-Bereichsvariablen):

cela allez malheureusement momentan pas. là devrait je SharedInFbProcs erweitern. Im Prinzip possible, mais je ne sais pas, si cela am Ende qui Lesbarkeit des Codes wirklich verbessert. ensuite devrait on sich merken, dass on une Bereichsvariable wirklich seulement pour défini hat.

je prends einmal à, Du vouloir viele Cordes sur einmal transfert. Pack qui Adressen simple dans un eigene Bereichsvariable et übergib cet une qui fbProc. ensuite extrahierst Du daraus qui Cordes.

{$FBSYNTAX on}

declare b1#,b2#,b3#,uebergabe#

fbProc fb3Cordes(ByVal uebergabe As Any Pointer) As Integer Export
dim As ZString Pointer s1,s2,s3
s1=peek(ZString Pointer,uebergabe)
s2=peek(ZString Pointer,uebergabe+4)
s3=peek(ZString Pointer,uebergabe+8)
screenres(400,300)
imprimer *s1
imprimer *s2
imprimer *s3
return 0
ENDPROC

cls
dim b1#,10000
dim b2#,10000
dim b3#,10000
string b1#,0="String 1"
string b2#,0="String 2"
string b3#,0="String 3"
dim uebergabe#,12
long uebergabe#,0=b1#
long uebergabe#,4=b2#
long uebergabe#,8=b3#
fb3Cordes(uebergabe#)
waitinput
dispose uebergabe#,b1#,b2#,b3#
end
 
XProfan X4 * Prf2Cpp * XPSE * JRPC3 * Win11 Pro 64bit * PC i7-7700K@4,2GHz, 32 GB RAM
PM: jreumsc@web.de
17.01.2022  
 




Jens-Arne
Reumschüssel
peut-être ca va avec den Arrays so quelque chose besser, sans Gepoke:

{$FBSYNTAX on}

declare a%[10],i%

fbProc fbArrayTest(ByVal p As Any Pointer) As Integer Export
dim i As Byte
dim a(10) As Integer Pointer
for i=0 to 10
a(i)=p+(i*4) 'Adresse des Elements mettons
*a(i)=i 'dem Element une Wert zuweisen
next i
return 0
ENDPROC

cls
fbArrayTest(@addr(a%[0]))
for i%,0,10
imprimer a%[i%]
endfor
waitinput
end
 
XProfan X4 * Prf2Cpp * XPSE * JRPC3 * Win11 Pro 64bit * PC i7-7700K@4,2GHz, 32 GB RAM
PM: jreumsc@web.de
17.01.2022  
 




funkheld
merci Jens-Arne la hâte mir wieder bientôt 10 km weitergeholfen.
Votre Beispiele sommes wunderbar Verfolgbar.

comment du es dessus zeigst , brauche je cet pas plus :
-------------------------------
nullterminierte gepushte Cordes-Bereichsvariablen
-------------------------------

avec den Bereichen et dem Array ist es einfacher trop handhaben.

merci.
Gruss
 
17.01.2022  
 




funkheld


allô Jens-Arne,
mir ist une Fehlermeldung aufgefallen (siehe Bild) chez dem Befehl : LoadBmp nom$,0,0; 0

Gruss
Déclarer nom$
Titre de la fenêtre "BILD-BETRACHTER"
CLS
ShowMax
Name$ = @LoadFile$("Bilddateien","*.BMP")

Tandis que nom$ <> »

    Cls
    LoadBmp nom$,0,0; 0
    Titre de la fenêtre "BILD-BETRACHTER - [" + nom$ + "]"
    WaitMouse
    nom$ = @LoadFile$("Bilddateien","*.BMP")

Endwhile

Fin

51 kB
Hochgeladen:18.01.2022
Downloadcounter37
Download
 
18.01.2022  
 




Jens-Arne
Reumschüssel
oui, c'est intention et hat den Grund, dass qui Befehl vieilli ist.

cela steht en supplément dans qui XProfan-Aider:

"Dieser Befehl wird dans künftigen XProfan-Versionen pas plus soutenu. Stattdessen ist qui Befehl DrawPic trop verwenden."

Salut, Jens-Arne
 
XProfan X4
XProfan X4 * Prf2Cpp * XPSE * JRPC3 * Win11 Pro 64bit * PC i7-7700K@4,2GHz, 32 GB RAM
PM: jreumsc@web.de
18.01.2022  
 




funkheld
merci pour qui Info.
J'ai pensé dans XProfanx4 sommes qui ollen Kamellen pas plus drin.

alors chez solchen Fehlermeldungen seulement la fois regarder si so un Murx encore drin ist, den es pas plus donner soll.

Gruss
 
18.01.2022  
 




Jens-Arne
Reumschüssel
il peut maintenant aussi "endfor" statt "next" dans fbProcs écrivons. cela J'ai eu chez den "Konzessionen" oublier qc.
 
XProfan X4 * Prf2Cpp * XPSE * JRPC3 * Win11 Pro 64bit * PC i7-7700K@4,2GHz, 32 GB RAM
PM: jreumsc@web.de
18.01.2022  
 




funkheld
merci pour qui Info.

Läßt du cet XPSE encore dans deiner Beschreibung drin?
je serait cela XPSE là maintenant rausnehmen.
Finde pour aucun rückfragen de Hilfestellungen usw. plus.

je selber habe mich en aussi verabschiedet et nutze maintenant cet FreeBasic pour qui Erweiterungen.

Gruss
 
19.01.2022  
 




p.specht

Einspruch, il me faut qui Assembler-Opportunités et api-Konstanten de XPSE. Nebenbei bemerkt, Jens-Arne ist berufstätig. Erstaunlich, qui il sich soviel Zeit pour Rückfragen nimmt - simple toll!
 
XProfan 11
Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'...
19.01.2022  
 




funkheld
Na enfin meldet sich la fois einer depuis long Zeit pour XPSE , super.
J'ai pensé qui Spezies sommes ausgestorben et déjà im Himmel.

je grüße toi du XPSE fan.

mon intérêt ist maintenant pour FreeBasic gegangen zur Erweiterung des XProfanx4.

comment Jens-Arne geschrieben hat ist cet XPSE pas so léger trop bändigen et hat toujours weitere neueProbleme bereitet.

j'ai déjà einiges programmiert pour mich et suis dabei mon eigenen XPSE-Programme umzustellen pour FreeBasic.

Gruss
 
19.01.2022  
 




Jens-Arne
Reumschüssel
Assembler bleibt XPSE-Domäne. API-Konstanten sommes dans JRPC3 aussi drin. si quelle manquer, s'il te plaît toujours her avec cela, qui peux je dazupacken.

Allerdings wüsste je gern einmal, si Assembler wirklich so viel plus rapide ist comme FreeBasic. Letzteres wird oui direct dans Maschinensprache traduit, alors letztlich dans Assembler - et es landet chez XPSE dans einer DLL, qui ensuite vom XProfan-Programme aufgerufen wird, oui c'est ca comment chez FreeBasic avec JRPC3. Bien sûr faire Hochsprachen là toujours einiges quelque chose moins optimal, comme si on sa Routinen direct et selbst dans Assembler écrit (quoi je pas peux), mais comment grand ist là qui Unterschied? Peter, peux Du cela chez Gelegenheit la fois testen?

Salut, Jens-Arne
 
XProfan X4
XProfan X4 * Prf2Cpp * XPSE * JRPC3 * Win11 Pro 64bit * PC i7-7700K@4,2GHz, 32 GB RAM
PM: jreumsc@web.de
19.01.2022  
 




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

62.961 Views

Untitledvor 0 min.
Jens-Arne Reumschüssel vor 4 Tagen
Manfred Barei25.09.2024
Gast.081529.08.2024
R.Schneider23.08.2024
plus...

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