SDK-Helfer/ Tools | | | | - Página 1 - |
| Jens-Arne Reumschüssel | Bueno Abend zusammen,
Yo bin kürzlich encima el problema gestolpert, dass XPSE una bastante große Quelldatei de No mehr verarbeiten podría. Variables fueron plötzlich como no definiert gemeldet y otro "erratische" Problemas mehr. Yo podría me vorstellen, dass dies daran liegt, dass XPSE Schlüsselworte en Windows-Atoms verwaltet. Como es irgendwann Schluss (en algo zwischen 60.000 y 70.000 Stück, wobei uno bedenken muss, dass XPSE el Windows-API con vorhält). Tal vez lo aber auch algo bastante más, Yo de hecho puede no en el "Maschinenraum" de XPSE schauen.
Jedenfalls blieb me, como XPSE no mehr gepflegt se, nichts más übrig, como el nachzubauen. Das Ergebnis es JRPC3.
----- Features:
*vernünftige Meldung de Fehlern *direkte Anzeige des Programmablaufes en XProfEd (sofern el unten erhältliche aufgebohrte XProfEd verwendet se) *Umsetzung el alten Profano-Syntax para Operatoren y alte Containerfunktionen *extremo schnelle native fbPROCs, sofern uno FreeBasic installiert ha (libre, siehe Ayuda) *con fbPROCs kann zudem Inline-Ensamblador auch antes XProfan X4 realisiert voluntad *extremo schnelle native pbPROCs, sofern uno PureBasic installiert ha *Echtzeitverfolgung de Variableninhalten *einfache Zeitmessungen en el Programmablauf *Profano-Kompilerdirektiven trabajo endlich vernünftig (z.B. Verschachtelung) *eingebettete Variables trabajo auch con Arrays *el meisten WIN32-API-Características son ya vordefiniert mitgeliefert *API-Aufrufe encima @external(...) voluntad automáticamente en @call(...)-Aufrufe umgesetzt *Einrückungsanalyse para Finden de vertrackten Verschachtelungsfehlern *Klammeranalyse para Finden de vertrackten Klammerfehlern *ENUMERATE-Funktionalität *Assert a Fehlerkontrolle *lo puede beliebige DLL en el XProfan-EXE integriert voluntad, sodass ellos no con ausgeliefert voluntad necesario (siehe {$WrapDll}) *einfaches Killen de con JRPC3 gestarteten Programmen (interpretiert, .prc comenzó, .exe comenzó) *extremadamente rápido (y por lo tanto natürlich no en XProfan geschrieben, como una interpretierte Lingua esta naturgemäß viel a langsam es) *beim Start de JRPC3 ya vorhandene .prc-Archivos puede para Starten y Linken genutzt voluntad (lo se una Referencia adecuado, dass es una altes Kompilat es) *el Profano-Compiler kann a Beschleunigung con hoher Prozessorpriorität aufgerufen voluntad *eingebauter Actualización-Checker con Descargar, si lo una Actualización son (Ayuda --> online después de Updates suchen) *64- oder 32-bit-Versión verfügbar (simplemente JRPC3_64.exe oder JRPC_32.exe como Interpreter en XProfEd hinterlegen [Optionen --> Allgemeine Einstellungen] y JRPC3 con F7 starten) - Achtung, el 64-bit-Versión producido natürlich no 64-bit-XProfan-Programas, como XProfan el no kann, pero JRPC3 incluso se como 64-bit-Programa ausgeführt *XProfan X4-Syntax verfügbar (möglicherweise todavía no alles, como Yo vermutlich no alles su benutze, pero yo habe mich en Vollständigkeit bemüht - jedenfalls son z.B. HASH-Arrays y QUADINTs esta) *Interpreter, PRCs y EXEs puede con Kommandozeilenparametern ausgeführt voluntad *Interpreter, PRCs, EXEs y XPSE puede con Administratorrechten ausgeführt voluntad *Prozeduren, el en el aktuellen Programa zwar enthalten son, pero no verwendet voluntad, voluntad de el umgesetzten Expediente lejos, a Dateigröße des Kompilats möglichst klein a halten *Variables, el en el aktuellen Programa zwar enthalten son, pero no verwendet voluntad, voluntad de el umgesetzten Expediente lejos, a Dateigröße des Kompilats möglichst klein a halten y el Speicherverbrauch a optimieren *nPROCs de XPSE voluntad automáticamente con XPE a uno DLL umgesetzt y el Aufrufe el nPROCs en el Programa entsprechend adaptado, sofern XPSE disponible es *fast alles de XPSE funktioniert auch en JRPC3 ({$NOERR}, {$(PRE)BATCH}, {$PUSHKEYWORD}, Interpreter, Runtime y Compiler festlegen, Shorties, ...) *XProfEd_JR con Ver código fuente-AutoComplete *XProfEd_JR con Ver código fuente-Memory-Función (Markierungen, a denen zurückgesprungen voluntad kann)
Einschränkungen: -kein XPSE-Inline-Ensamblador, wohl aber XProfan-Inline-Ensamblador (en él allerdings no Prüfungen en Korrektheit des Codes) -ABER: uno kann XPSE de JRPC3 heraus aufrufen, sodass esta Funktionalität weiterhin verfügbar es, sofern uno XPSE besitzt (neuer Shorty: {$x}) -Variables, el en uno Procedimiento no deklariert son, pero "aus el aufrufenden Procedimiento übernommen werden", son standardmäßig no zugelassen (XProfan erlaubt el, aber así algo es genauso tödlich como GOTO-Anweisungen). Bitte todos a nutzenden Inputs como Parámetro transferencia, y si algo de el aufrufenden Programmteil verändert voluntad muss, beim Aufruf como Parámetro z.B. @addr(x&) uso y el Procedimiento parámetros x# y LONG x#,0=y& nutzen. Wenn uno aber necesariamente "vererbte" Variables nutzen möchte, puede ser dies con el Kompilerdirektive {$Declarar...} tun.
*como Hommage a XPSE lautet el Endung el Ausgabedatei ".enh3"
Un genauere Erläuterung el individual Features es el chm-Hilfedatei a entnehmen, el en el Programa bajo Ayuda --> Hilfedatei Mostrar oder con F1 verfügbar es.
----- /Features
Descargar y installieren: JRPC3 kann unten heruntergeladen voluntad (setup_jrpc3.exe oder como ZIP-Expediente). Als Installationsverzeichnis Por favor, el XProfan-Stammverzeichnis angeben, also dasjenige, en el el Archivos PROFAN.EXE, PROFCOMP.EXE, PRFRUN32.EXE etc. mentira. Alternativ kann el ZIP-Expediente heruntergeladen y deren Inhalt manuell en el XProfan-Stammverzeichnis kopiert voluntad.
Einrichtung: JRPC3_64.exe oder JRPC_32.exe como Interpreter en XProfEd hinterlegen [Optionen --> Allgemeine Einstellungen] y JRPC3 con F7 starten.
Alle Befehle son con el Befehl "h" como "Hilfe" abrufbar y debería selbsterklärend ser.
Für viele erweitere Features, el XProfEd betreffen, como z.B. jenes, el Línea, en el una Fehler auftrat, direkt en XProfEd Mostrar a puede, es el mitinstallierte XProfEd_JR erforderlich. Dafür muss uno also XProfEd_JR.exe en lugar de XProfEd.exe como Editor benutzen. Als "goody" hay dazu, dass beim Auf- y Zufalten de Programmen una Fortschrittsanzeiger integriert es (el kann en großen Programmen sí bekanntlich una bisschen dauern).
Lo mag ser, dass todavía no alles perfekt funktioniert. Yo Por favor, esta en Nachsicht. Mi Programas dejar se umsetzen, aber el muss todavía largo no heißen, dass dies con Programmen otro Autores, el cada así ihre Eigenheiten haben, auch funktioniert.
Fehlermeldungen y Verbesserungsvorschläge gerne a jreumsc@web.de oder hier en el Foro.
Beste Grüße, Jens-Arne |
| 2.584 kB | | Bezeichnung: | JRPC3 | | Versión: | 10.29 | | Kurzbeschreibung: | JRPC3-Installer | | Hochgeladen: | 15.02.2021 | | Ladeanzahl: | | | | Descargar | | | | 1.699 kB | | Bezeichnung: | XProfEd_JR | | Versión: | 5.2 | | Kurzbeschreibung: | Alte Versión sin AutoComplete a Sicherheit | | Hochgeladen: | 15.02.2021 | | Ladeanzahl: | | | | Descargar | | | | 3.777 kB | | Bezeichnung: | JRPC3 | | Versión: | 10.29 | | Kurzbeschreibung: | ZIP-Expediente en lugar de Installer | | Hochgeladen: | 02.04.2021 | | Ladeanzahl: | | | | Descargar |
| | | XProfan X4 * Prf2Cpp * XPSE * JRPC3 * Win11 Pro 64bit * PC i7-7700K@4,2GHz, 32 GB RAM PM: jreumsc@web.de | 16.02.2021 ▲ |
| |
| | | | - Página 19 - |
| | « Dieser Contribución wurde como Solución gekennzeichnet. » | | - Página 15 - |
| Jens-Arne Reumschüssel | Lo son una neue Versión, el anders con el internen Messagehandling umgeht. Bitte probier el veces de. Tal vez el problema así Fijo. |
| | | XProfan X4XProfan 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 | Ah, danke, Yo hatte después de "VarFinder" gesucht, no después de "Var-Finder". |
| | | XProfan X4XProfan X4 * Prf2Cpp * XPSE * JRPC3 * Win11 Pro 64bit * PC i7-7700K@4,2GHz, 32 GB RAM PM: jreumsc@web.de | 25.10.2022 ▲ |
| |
| | RudiB. | ¡Hola Jens-Arne,
me es otra vez veces una merkwürdiger Fehler en JRPC3 aufgefallen...
...el debería eigentlich no Fehlermeldung verursachen... Der Ver código fuente es el XProfed.prf de Roland...
Saludo Rudi |
| | | Xprofan X4 Rudolf Beske / München
Hardware: NB Intel I9 - 16GByte RAM | 30.10.2022 ▲ |
| |
| | Jens-Arne Reumschüssel | Naja, el Fehlertext es doch selbsterklärend. In el Ayuda de XProfan es, dass "date$" en Zukunft no mehr unterstützt se. Also debería al auch no mehr uso. Mit {$UseOldProf} puede ser el aber trotzdem tun, si uno porque necesariamente möchte. Es zwar inzwischen hochbedauerlicherweise unwahrscheinlich geworden, dass lo künftig todavía una vez una Versión de XProfan geben se, en el el Unterstützung para alte Características tatsächlich rausfliegt, aber wir debería el Codes trotzdem dafür einrichten, si todavía una Wunder geschieht.
Beste Grüße, Jens-Arne |
| | | XProfan X4XProfan X4 * Prf2Cpp * XPSE * JRPC3 * Win11 Pro 64bit * PC i7-7700K@4,2GHz, 32 GB RAM PM: jreumsc@web.de | 30.10.2022 ▲ |
| |
| | funkheld | Posesiones ahora deine neueste Versión runtergeladen Jens-Arne. Es Toll como du lo más verbesserst el JRPC3.
Me complace el ahora incluso en München dieses Freebasic con instalado se.
Gracias y Gruss |
| | | | |
| | Jens-Arne Reumschüssel | Versión 8.25:
Neben ungezählten Bugfixes en el vorangegangenen Versionen Yo mich en letzter Tiempo intensiver así beschäftigt, cómo Sound- y Grafikdateien hardcoden y de el Speicher abspielen/Mostrar kann.
Hierzu gab lo bislang sí ya el DATA-Características de JRPC3. Aunque se el Datenübergabe con long-Zeilen muy intensiv, si uno größere Archivos hardcoden möchte. Dann startet el XProfan-Programa ya muy langsam, porque lo u.U. zehntausende Zeilen einlesen muss, y el Datenübergabe a Laufzeit es ebenfalls extremo langsam. Ein solches Programa a kompilieren, dauert ebenfalls viel demasiado tiempo.
Daher hay ahora el DATA-Características (BEGINDATA y DATAFILE) auch como FreeBasic-Versionen. fbBEGINDATA y fbDATAFILE erzeugen fbProcs, el el Datenübergabe así rápidamente hacer, dass uno ellos no mehr bemerkt, y Programmstart se dadurch natürlich auch no mehr belastet, porque el Daten sí en uno externo DLL mentira. Einmalig dauert el Kompilierung siempre todavía largo, aber danach puede ser con {$DontCompileFbProcs} el erneute Kompilierung verhindern y el una vez erzeugte DLL weiterverwenden.
Wenn Ihr Interesse a XProfan-Características habt, el lo Nutzen ziehen, nämlich Grafikdateien (BMP, PNG, JPG, TIF, ...) direkt de el Speicher a invitar y Sounds direkt au el Speicher abzuspielen, kann Yo hier dazu todavía algo puesto. Diese Archivos puede ser entonces con el oben beschriebenen Características seinem Programa hardgecoded hinzufügen, sin Extra-Archivos en con hinzufügen tener.
Beste Grüße, Jens-Arne |
| | | XProfan X4XProfan X4 * Prf2Cpp * XPSE * JRPC3 * Win11 Pro 64bit * PC i7-7700K@4,2GHz, 32 GB RAM PM: jreumsc@web.de | 28.11.2022 ▲ |
| |
| | funkheld | ¡Hola Jens-Arne. Gracias para dein Angebot.
Yo bin muy interessiert a deinem Datenangebot qué du oben gemacht hast.
Aber du necesidad lo ahora no extra para mich hacer. Yo wünsche el lo mehr Interessenten son el deine neue Richtung con Profran auch con hacer.
Gracias. |
| | | | |
| | Jens-Arne Reumschüssel | Kein Problema, los geht's:
relativ einfache PROC, el sólo BMPs de Rohdaten en el Speicher erzeugen kann:
declarar _hLogo%
PROC Init
declarar b#
'{ 'Bild-Handles de hardgecodeten Rohdaten generieren
DataFile b#,"Test.bmp"'muss natürlich existieren
_hLogo%=CatchBmp(b#)
disponer b#
'}
ENDPROC'Init
PROC CatchBmp'macht de una roh eingelesenen BMP-Zona una anzeigbares Mapa de bits con un Handle
Parámetros MemPointer&'una Bereichsvariable, en el el BMP binär eingelesen wurde
Declarar hDC&,BITMAPFILEHEADER#,BMPInfo&,init&,hImage&
hDC&=@Externo("user32.dll","GetDC",@Externo("user32.dll","GetDesktopWindow"))
'Dim BITMAPFILEHEADER#,14 'Yo glaube, el es überflüssig (siehe unten en Disponer BITMAPFILEHEADER#)
BITMAPFILEHEADER#=MemPointer&
BMPInfo&=MemPointer&+14
init&=MemPointer&+Largo(BITMAPFILEHEADER#,10)
hImage&=Externo("gdi32.dll","CreateDIBitmap",hDC&,BMPInfo&,4,init&,BMPInfo&,0)
@Externo("user32.dll","ReleaseDC",@Externo("user32.dll","GetDesktopWindow"),hDC&)
'Disponer BITMAPFILEHEADER# 'Yo glaube, el es überflüssig y incluso schädlich (lo sería MemPointer& freigegeben y no el ursprünglich allokierten 14 Bytes)
Volver hImage&
ENDPROC'CatchBmp
cls
init
DrawPic _hLogo%,10,10;0
waitinput
deleteobject _hLogo%
end
Es ursprünglich de Sebastian König/Ts-Soft/Frank Abbing. Yo habe el offensichtliche Speicherleck en CatchBmp por Auskommentieren Fijo. |
| | | XProfan X4 * Prf2Cpp * XPSE * JRPC3 * Win11 Pro 64bit * PC i7-7700K@4,2GHz, 32 GB RAM PM: jreumsc@web.de | 29.11.2022 ▲ |
| |
| | Jens-Arne Reumschüssel | Und nun para todos möglichen Grafikformate (BMP, ICO, GIF, JPG, EXIF, PNG, TIF, WMF, EMF). Es de me.
STRUCT S_GDIPlusStartupInput=GdiplusVersion&,DebugEventCallback&,SuppressBackgroundThread&,SuppressExternalCodecs&
declarar _hPic%,_b#,_b2#,_GDIPlusToken&,_hGDIPlusDll&,_hIcon%,_hShlwapiDll&,_iStream&
PROC InitGDIPlus
declarar gdpsi#,GDIPlusToken&
_hShlwapiDll&=@usedll("Shlwapi.dll")
_iStream&=0
_hGDIPlusDll&=@usedll("GDIPLUS.DLL")
dim gdpsi#,S_GDIPlusStartupInput
gdpsi#.GdiplusVersion&=1
gdpsi#.DebugEventCallback&=0
gdpsi#.SuppressBackgroundThread&=0
gdpsi#.SuppressExternalCodecs&=0
~GdiplusStartup(@addr(GDIPlusToken&),gdpsi#,0)
disponer gdpsi#
volver GDIPlusToken&
ENDPROC'InitGDIPlus
PROC DeInitGDIPlus
parámetros GDIPlusToken&
~GdiplusShutdown(GDIPlusToken&)
freedll _hGDIPlusDll&
if _iStream&
@external("Shlwapi.dll","IStream_Reset",_iStream&)
endif
freedll _hShlwapiDll&
ENDPROC'DeInitGDIPlus
PROC GDIPLoadImageFromFile'es el Vollständigkeit halber dabei; wir querer sí aber de el Speicher lesen
Parámetros Imagen$
Declarar result&,Filew#,Bitmap&
result&=0
dim Filew#,@len(Imagen$)+2
widestring Filew#,0=Imagen$
~GdipCreateBitmapFromFile(Filew#,ADDR(Bitmap&))
disponer Filew#
if Bitmap&
result&=Bitmap&
Endif
volver result&
ENDPROC'GDIPLoadImageFromFile
PROC GDIPlusLoadImageFromMemory'Icons necesario ebenfalls como normale Gráficos (BMP, JPG etc.) transferencia voluntad, no como ICO-Archivos!
Parámetros Imagen#,ReturnAsAicon%'ReturnAsAicon% kann auch weggelassen voluntad, Luego se una normales Grafikhandle zurückgegeben
Declarar result&,Bitmap&,hBitmap&,pc%,err%
pc%=%pcount
if pc%=1
ReturnAsAicon%=0
endif
result&=0
if _iStream&=0
_iStream&=@external("Shlwapi.dll","SHCreateMemStream",Imagen#,@sizeof(Imagen#))
más
@external("Shlwapi.dll","IStream_Reset",_iStream&)
@external("Shlwapi.dll","IStream_Write",_iStream&,Imagen#,@sizeof(Imagen#))
endif
err%=~GdipCreateBitmapFromStream(_iStream&,@addr(Bitmap&))
if err%<>0
@messagebox("GdipCreateBitmapFromStream-Error: "+@str$(err%),"",0)
endif
if ReturnAsAicon%=0
err%=~GdipCreateHBITMAPFromBitmap(Bitmap&,@addr(hBitMap&),0)
if err%<>0
@messagebox("GdipCreateHBITMAPFromBitmap-Error: "+@str$(err%),"",0)
endif
más
err%=~GdipCreateHICONFromBitmap(Bitmap&,@addr(hBitMap&))
if err%<>0
@messagebox("GdipCreateHBITMAPFromBitmap-Error: "+@str$(err%),"",0)
endif
endif
@external("GDIPLUS.DLL","GdipDisposeImage",Bitmap&)
if hBitmap&
result&=hBitmap&
Endif
volver result&
ENDPROC
cls
'~CoInitialize(0) 'offenbar no nötig
_GDIPlusToken&=@InitGDIPlus()
datafile _b#,"test.jpg"
_hPic%=@GDIPlusLoadImageFromMemory(_b#)
drawpic _hPic%,0,0;0
~deleteobject(_hPic%)
_hIcon%=@GDIPlusLoadImageFromMemory(_b#,1)
drawicon _hIcon%,0,0
~deleteobject(_hIcon%)
disponer _b#
waitinput
DeInitGDIPlus(_GDIPlusToken&)
'~CoUninitialize() 'offenbar no nötig
end
|
| | | XProfan X4XProfan X4 * Prf2Cpp * XPSE * JRPC3 * Win11 Pro 64bit * PC i7-7700K@4,2GHz, 32 GB RAM PM: jreumsc@web.de | 29.11.2022 ▲ |
| |
| | Jens-Arne Reumschüssel | Und nun para Sounds (es de me una Vorbild de Frank Abbing):
declarar _memsound#
PROC PlayMemSound
parámetros memsound#,synchronous%'synchronous% kann auch weggelassen voluntad, Luego se 0 como Default genommen (also asynchron abgespielt)
declarar p%
p%:=%pcount
if p%=1
synchronous%:=0
endif
if synchronous%=0
@external("Winmm.dll","PlaySoundA",memsound#,0,~SND_MEMORY | ~SND_ASYNC)'siehe https://learn.microsoft.com/en-us/previous-versions/dd743680(v=vs.85)
más
@external("Winmm.dll","PlaySoundA",memsound#,0,~SND_MEMORY | ~SND_SYNC)
endif
ENDPROC'PlayMemSound
PROC StopSound
@external("Winmm.dll","PlaySoundA",0,0,~SND_ASYNC)'stop playing
ENDPROC'StopSound
cls
datafile _memsound#,"sound.wav"'muss natürlich existieren
playmemsound _memsound#
imprimir "fertig."
waitinput
disponer _memsound#
end
|
| | | XProfan X4XProfan X4 * Prf2Cpp * XPSE * JRPC3 * Win11 Pro 64bit * PC i7-7700K@4,2GHz, 32 GB RAM PM: jreumsc@web.de | 29.11.2022 ▲ |
| |
| | funkheld | ¡Hola danke. Es Super. Un tolle Sache. Gracias.
Jetzt voluntad Yo primero así rumtüfteln y spielen. Der Code es wunderbar para Lernen. |
| | | | |
| | Jens-Arne Reumschüssel | neue Versión (8.33) disponible: - {$Declarar ...} macht »geerbte« Variables en JRPC3 bekannt, si uno dieses gefährliche »Feature« de XProfan porque necesariamente nutzen möchte - {$Dim ...} macht Estructuras de Bereichsvariablen, el como Parámetro en un PROC gelangen, sin hay gedimt a voluntad, en AutoComplete de XProfEd_JR bekannt
Bitte en beiden Fällen el Ayuda a JRPC3 konsultieren.
Beste Grüße, Jens-Arne |
| | | XProfan X4XProfan X4 * Prf2Cpp * XPSE * JRPC3 * Win11 Pro 64bit * PC i7-7700K@4,2GHz, 32 GB RAM PM: jreumsc@web.de | 26.02.2023 ▲ |
| |
| | funkheld | Gracias para deine neue Versión. 8.34 |
| | | | |
|
RespuestaTema opciones | 62.351 Views |
ThemeninformationenDieses Thema ha 8 subscriber: |