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.665 kB
Bezeichnung:JRPC3
Version:10.40
Kurzbeschreibung: JRPC3-Installer
Hochgeladen:15.02.2021
Downloadcounter393
Download
1.699 kB
Bezeichnung:XProfEd_JR
Version:5.2
Kurzbeschreibung: vieille Version sans AutoComplete zur Sicherheit
Hochgeladen:15.02.2021
Downloadcounter243
Download
4.065 kB
Bezeichnung:JRPC3
Version:10.40
Kurzbeschreibung: ZIP-Dossier statt Installer
Hochgeladen:02.04.2021
Downloadcounter304
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 22 -


« 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
rien einfacher comme cela:

declare payons#,i%

pbPROC multiply(*payons)
protected i.i
for i=0 to 999
PokeL(*payons+(i*4),PeekL(*payons+(i*4))*6)
next i
ENDPROC

cls
dim payons#,1000*4
for i%,0,999
long payons#,(i%*4)=rnd(10000)+1
endfor 'i%
for i%,0,9 'qui ersten dix Originalzahlen Montrer
imprimer @long(payons#,i%*4)
endfor 'i%
multiply(payons#)
imprimer "--- avec 6 multipliziert:"
for i%,0,9 'qui ersten dix multiplizierten payons Montrer
imprimer @long(payons#,i%*4)
endfor 'i%
waitinput
dispose payons#
end

peut-être habe je mich unglücklich ausgedrückt. Es peut naturellement alle erdenklichen "normalen" Variablentypen à une pbPROC transfert volonté, seulement pas alle en sur Shared. avec "normal" mon je, dass Profan-eigene Sondersachen comment Hash-Variablen ne...aucune direktes Pendant dans PB avons et daher pas übergreifend verwendet volonté peut. mais alles de integer sur float, single, pointer usw. peux on naturellement benutzen. on muss seulement den Variablentyp dans PB juste choisir. alors pour Float:

declare f!

pbPROC MultiplyFloat(*f)
protected f.d ;muss .d pour double son, ".f=float" dans PB entspricht "single" dans XProfan
f=PeekD(*f)
f=f*6
PokeD(*f,f)
ENDPROC

cls
f!=2.34561
MultiplyFloat(@addr(f!))
imprimer f!
waitinput
end

Lebenswichtig trop savons ist, dass paramètre, qui à une DLL-Funktion transfert volonté, toujours oui c'est ca 4 Bytes avons (cela gilt aussi pour une potentiellen Rückgabewert!). cela bedeutet, dass on z.B. Integer-payons direct transfert peux, Float-payons mais pas, car qui avons 8 Bytes. c'est pourquoi doit wir im letzten Beispiel avec qui Adresse qui Float-Variablen travailler et qui Float-numéro dans PB daraus extrahieren. Aussi peux on sur cet Weise den Rückgabewert direct dans qui XProfan-Variable zurückschreiben, indem on en Adresse benutzt.
 
XProfan X4 * Prf2Cpp * XPSE * JRPC3 * Win11 Pro 64bit * PC i7-7700K@4,2GHz, 32 GB RAM
PM: jreumsc@web.de
11.05.2023  
 




funkheld
merci pour deine Aider.
je hoffe le moi es maintenant avec 74 Jahren bientôt begreife.

une s'il te plaît habe je encore.
j'ai ici un Test avec freebasic gemacht , qui très vite ist et mir plaisons hat de qui
Geschwindigkeit her.
peux du s'il te plaît qui fbProc la fois umsetzen pour PB avec cela je fois le Geschwingkeit voyons peux de PB.

là ici aussi wieder Variablen transfert volonté de qui fbProc .

merci bien pour deine Mühe.
 {$FBSYNTAX on}
declare dib&,array&,groesse&,hoehe&,ende&,bild&
DEF CreateDIB(2) !"dib","CreateDIB"
DEF FreeDIB(1) !"dib","FreeDIB"
DEF DrawDIB(4) !"dib","DrawDIB"
DEF CloneDIB(1) !"dib","CloneDIB"
dib&=usedll("dib.dll")
fbProc erzeugebildi(byval b As Integer, ByVal g As Integer) As Integer Export
Faible test As Integer
FOR test = 0 TO g-100000 step 3
poke integer,test+b,&h0000ff
next test
return 0

endproc

array&=CreateDIB(700,700)
groesse&=700*700*3
hoehe&=700
Fenêtre 20,20-750,780
Cls RGB(255,255,255)
bild&= Long(array&,40)
erzeugebildi(bild&,groesse&)
DrawDIB(%hdc,10,10,array&)
WaitKey
FreeDIB(dib&)
Fin
 
11.05.2023  
 




Jens-Arne
Reumschüssel
j'ai qui Dossier "dib.dll" pas, daher peux je cela pas testen. mais j'ai versucht, qui fbPROCs dans pbPROCs trop traduire:

pbProc erzeugebild(b.i,g.i)
protected test.i
FOR test = 0 TO g-100000 step 3
pokeB(test+b,$00)
pokeB(test+b+1,$00)
pokeB(test+b+2,$ff)
next test
procedurereturn 0
endproc

pbProc erzeugebildi(b.i,g.i)
protected test.i
FOR test = 0 TO g-100000 step 3
pokeI(test+b,$0000ff)
next test
procedurereturn 0
endproc

et hey, bien sûr verstehst Du cela trotz Deines entier un bisschen vorgerückten Alters. autre peut avec 74 seulement en träumen, sich encore avec so komplizierten comment abstrakten Dingen trop beschäftigen.
 
XProfan X4 * Prf2Cpp * XPSE * JRPC3 * Win11 Pro 64bit * PC i7-7700K@4,2GHz, 32 GB RAM
PM: jreumsc@web.de
11.05.2023  
 




funkheld
merci cela klappt wunderbar.

maintenant habe je aussi qui Rückgabe de den Werten verstanden.

c'est plus rapide comme freebasic.

Könnte on de PB aus aussi Windows API avec Grafik realisieren quelle ensuite dans Profan fonctionne?

Gruss
 
12.05.2023  
 




funkheld
payons de einem Bereich dans den anderen Bereich funktioniert pas.

quoi pour une faute habe je maintenant s'il te plaît gemacht?

merci.
gruss
declare payons#,i%
declare payons1#,i1%
pbPROC multiply(*payons,*payons1)
protected i.i
for i=0 to 999
PokeL(*payons1+(i*4),PeekL(*payons+(i*4))*6)
next i

ENDPROC

cls
dim payons#,1000*4
dim payons1#,1000*4
for i%,0,999
long payons#,(i%*4)=rnd(10000)+1
endfor'i%
for i%,0,9'qui ersten dix Originalzahlen Montrer
imprimer @long(payons#,i%*4)
endfor'i%
multiply(payons#,payons1#)
imprimer "--- avec 6 multipliziert:"
for i%,0,9'qui ersten dix multiplizierten payons Montrer
imprimer @long(payons1#,1*4)
endfor'i%
waitinput
dispose payons#
dispose payons1#
end
 
12.05.2023  
 




Jens-Arne
Reumschüssel
tu as chez den ersten dix multiplizierten payons aus Versehen 1 statt i% geschrieben:

imprimer @long(payons1#,1*4)

Es muss appeler:

imprimer @long(payons1#,i%*4)

cet Art de Fehlern kenne je seulement trop bien...
 
XProfan X4
XProfan X4 * Prf2Cpp * XPSE * JRPC3 * Win11 Pro 64bit * PC i7-7700K@4,2GHz, 32 GB RAM
PM: jreumsc@web.de
12.05.2023  
 




Jens-Arne
Reumschüssel
> Könnte on de PB aus aussi Windows API avec Grafik realisieren quelle ensuite dans Profan fonctionne?

oui, il peut alle möglichen Windows-API-Aufrufe dans PB benutzen (simple une Unterstrich derrière den Funktionsnamen écrivons, z.B. MessageBox_(...)). si on den DC vom XProfan-la fenêtre übergibt, peux on aussi puis zeichnen (qui entsprechende XProfan-Systemvariable ist standardmäßig ge-Shared et muss pas extra transfert volonté: %HDC).

un Beispiel:

pbPROC Malen()
protected s$,r.RECT ;PB kennt qui API-Strukturen (dans diesem le cas RECT)
s$="ca est un Text." ;kann (et muss) Unicode son, weil PB automatisch qui Unicode-variante de DrawText benutzt
r\left=10
r\top=10
r\right=210
r\bottom=30
DrawText_(%HDC,@s$,-1,@r,#DT_LEFT) ;PB kennt automatisch qui API-Konstanten (avec vorangestelltem '#')
ENDPROC

cls
Malen()
waitinput
end
 
XProfan X4 * Prf2Cpp * XPSE * JRPC3 * Win11 Pro 64bit * PC i7-7700K@4,2GHz, 32 GB RAM
PM: jreumsc@web.de
12.05.2023  
 




funkheld
merci pour deine Aider.

comment sieht es s'il te plaît avec diesem Befehlen de PB aus , naturellement sans cet:
Open......
Repeat
Event = WaitWindowEvent()
Until Event = #PB_Event_CloseWindow

si quelque chose récente ist, frage je toujours viel pour un durchführbares Grundgerüst.

merci pour deine répondre.
CreateImage(0, 200, 200) And StartDrawing(ImageOutput(0))
Box(0, 0, 200, 200, RGB(255, 255, 255))
For Radius = 100 To 10 Step -10
Circle(100, 100, Radius, RGB(Random(255), Random(255), Random(255)))
Next
StopDrawing()
ImageGadget(0, 0, 0, 200, 200, ImageID(0))
 
12.05.2023  
 




Jens-Arne
Reumschüssel
Events volonté dans pbPROCs pas marcher, denke je. c'est oui cela interne Messagehandling de PureBasic dans "richtigen" PureBasic-Programmen. ici nutzen wir mais toujours seulement einzelne Procedures, cela Messagehandling übernimmt XProfan.

je crois daher pas, dass Gadgets dedans de pbPROCs courir volonté. je serait là lieber Controls direct sur CreateWindow bzw. CreateWindowEx erzeugen. si qui angeklickt volonté etc., peux on ensuite dans qui XProfan-SubclassProc abfragen. et qui peux naturellement aussi dans un pbPROC umgeleitet volonté, indem on y qui paramètre à une solche übergibt. c'est pour umfangreichere SubclassProcs sogar très trop empfehlen, weil cet geschwindigkeitssensibel sommes. si une neue Message ankommt, au cours de qui SubclassProc encore fonctionne, peux es Ärger donner, weil cet ensuite nochmal aufgerufen wird, au cours de vous encore pas finissez ist.

Nochmal anders ausgedrückt: Alles, quoi avec dem GUI trop 1faire hat, serait je dans XProfan écrivons. qui Erstellung qui Controls muss oui pas superschnell aller, cela bekommt Profan très bien hin. Umfangreichere Berechnungen aller Art sommes mais dans einer pbPROC parfait aufgehoben. aussi cela Füllen z.B. eines TreeViews ou bien einer GridBox peux dans einer pbPROC très vite fonctionnement volonté (allerdings pas sur qui Gadget-Funktionen, weil es oui aucun Gadget-numéro gibt, mais malheureusement sur qui entsprechenden, assez komplizierten Windows-API-Funktionen). mais qui Abfrage, si qui Nutzer sur irgendetwas geklickt hat, serait je, comment dit, dans XProfan écrivons.
 
XProfan X4 * Prf2Cpp * XPSE * JRPC3 * Win11 Pro 64bit * PC i7-7700K@4,2GHz, 32 GB RAM
PM: jreumsc@web.de
12.05.2023  
 




Jens-Arne
Reumschüssel
tu peux Dir par Drücken de '#' dans JRPC3 incidemment regarder, comment qui Code aussieht, qui pour qui PB-DLL erzeugt wird (si le Erzeugung erfolgreich était - et si Du XProfEd_JR benutzt). là peux on ensuite bien voyons, quoi aus un certain pbPROC eigentlich wird et comment qui Dinge marcher - ou bien plan aussi pas marcher. là erkennt on ensuite z.B. très joli, dass avec Shared übergebene XProfan-Variablen dans PB comme Pointer dargestellt volonté. c'est aussi qui Grund, pourquoi vous z.B. pas comme Laufvariablen pour FOR-Schleifen valoir, aussi si on pour une Integervariable benutzt hat.
 
XProfan X4
XProfan X4 * Prf2Cpp * XPSE * JRPC3 * Win11 Pro 64bit * PC i7-7700K@4,2GHz, 32 GB RAM
PM: jreumsc@web.de
12.05.2023  
 




Jens-Arne
Reumschüssel
quoi qui Drawing-Funktionen angeht, qui Du dessus genannt la hâte, sais je im Moment pas, si cela marcher peux ou bien pas. cela hängt en ab, quoi "OutputID" chez StartDrawing eigentlich ist. si cela un DC ist, peux on là %HDC angeben et ensuite pourrait es courir. si cela mais une PB-interne ID ist, wird es schwierig, fürchte je. si Du API-Funktionen utilise, et qui gibt es oui pour alle möglichen Grafikausgaben, wird es mais marcher.

si cela mais so une grand Geschwindigkeitsvorteil ergibt, sais je pas droite. XProfan benutzt pour qui Grafikausgabe am Ende interne oui aussi qui Windows-API-Funktionen.

on sollte pas versuchen, cela halbe Programme dans pbPROCs trop verlagern. Sondern c'est sinnvoll, qui meist très wenigen Passagen dans einem Programme trop identifier, qui wirklich de einem Geschwindigkeitsboost par une native Funktion profitieren. qui lagert on ensuite aus, alles autre bleibt XProfan.
 
XProfan X4 * Prf2Cpp * XPSE * JRPC3 * Win11 Pro 64bit * PC i7-7700K@4,2GHz, 32 GB RAM
PM: jreumsc@web.de
12.05.2023  
 




funkheld
allô, merci pour deine Ausführliche Info.

Gruss
 
12.05.2023  
 




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

73.065 Views

Untitledvor 0 min.
Jens-Arne ReumschüsselVorgestern (14:44)
Axel Berse03.06.2025
Paul Glatz23.05.2025
HofK12.02.2025
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