| |
|
|
- Página 1 - |
|
Sebastian König | Siehe auch Tutoriales para Thema: [...]
Profano2Cpp-Ayuda
El Direktive $DLL, el al Anfang des Quellcodes posición debería, teilt Profano2Cpp con, dass una DLL generiert voluntad se.
Prozeduren, el exportiert voluntad debería, voluntad con dllproc eingeleitet. Nach el Namen el Procedimiento se esta como zweites Argument el número el Parámetro, el el Procedimiento esperado, angegeben. Diese Zahl debería natürlich con el, qué später con parámetros spezifiziert se, übereinstimmen. Mit dllproc deklarierte Prozeduren puede no verschachtelt voluntad.
Seit Profano2Cpp 1.6a kann como dritter Parámetro optional una Stringliteral (Ausdruck en Anführungszeichen, no Variable!) angegeben voluntad, el el genauen Export-Namen el Procedimiento angibt. (...)
Ejemplo-Code: KompilierenMarcaSeparación $DLL
Alles, was nicht in eine Prozedur steht, wird beim Laden und
Entladen der DLL ausgeführt. Dies ist also auch der Platz,
wo eventuell nötige (De)Initialisierungen und stehen sollten.
if %DLLInit Laden...
MessageBox ... aus DllMain().,Meldung...,0
else Entladen...
MessageBox DLL wurde deinitialisiert.,Ciao,0
endif
proc IsPrime
Eine Prozedur, die nur innerhalb der DLL verwendet wird.
Gibt 1 zurück, wenn number& prim ist, sonst 0.
parameters number&
declare prime%
let prime% = 1
whileloop 2,(number& 2)
ifnot number& mod &loop
let prime% = 0
break
endif
endwhile
return prime%
endproc
dllproc CountPrimes,1
Zählt alle Primzahlen von 2 bis upto&.
parameters upto&
declare primes&
let primes& = 1 Die 2 zählt schonmal...
whileloop 3,upto&,2 sonst alle geraden Zahlen überspringen...
if IsPrime(&loop) <> 0
inc primes&
endif
endwhile
return primes&
ENDPROC
So puede ser el DLL entonces uso (.inc se automáticamente de Profano2Cpp producido): KompilierenMarcaSeparación MfG
Sebastian
Siehe auch: Umfrage DLL con Profano2Cpp? [...] |
|
|
| |
|
|
|
| |
|
- Página 1 - |
|
Sebastian König | Jac
Como stehts con Controls y así, puede el en Profano producido y el DLL benutzt y ser umgekehrt? Gibt lo Einschränkungen?
*seufz* Und Yo tener me soviel Mühe con el Carta el Documentación gegeben.. Hier also todavía una Auszug: Profano2Cpp-Ayuda
Un größere Einschräkung hay desafortunadamente: Innerhalb el DLL debería no Befehle oder Características, el Ventana oder Fensterelemente erzeugen, verwendet werden; el Comportamiento es sonst unvorhersehbar. @SendMessage() y @PostMessage() trabajo sin embargo - y MessageBoxes posición disponible.
Ergänzend dazu es a sagen, dass encima API natürlich alles erlaubt es. El Einschränkung bezieht se sólo en Sachen como Crear() y Control(), y en Crear() auch sólo en Fensterelemente.
Generell sería uno aber auch sowiese más Performance-kritische Sachen en un C++-DLL auslagern, y como gehören GUI-Sachen con Fenstern meiner Erfahrung después de selten dazu...
MfG
Sebastian |
|
|
| |
|
|
|
| Jup, el es una gute Demo. Gracias.
Na, entonces kann Yo sí einiges en mi Programmen veces umgestalten/auslagern.
mfg |
|
|
| |
|
|
|
Detlef Jagolski | Yo habe me con Profano2Cpp para mi Owner-Draw Menüs una Dll gebaut con todavía weitern Características el Yo siempre brauche. |
|
|
| XProfan X4, PRFellow, Profan2Cpp - Version 2.0c-pre5, Windows 11 | 11.03.2009 ▲ |
|
|
|
|
Sebastian König | Detlef Jagolski
Yo habe me con Profano2Cpp para mi Owner-Draw Menüs una Dll gebaut con todavía weitern Características el Yo siempre brauche.
Ein schönes Ejemplo, el gleichzeitig zeigt, dass auch Ventana-bezogene Dinge posible son.
Mi propio Aussage de oben (Antwort and Jac) Yo esta otra vez näher bedacht y muss nun sagen: Es probablemente no sólo en Dingen, para el una hohe Geschwindigkeit wichtig es, sinnvoll ellos en un DLL auszulagern. Tal vez möchte uno auch simplemente una DLL a Verwendung en varios Proyectos y/oder a Veröffentlichung redactar.
Der Zwischenstand el Umfrage (si auch no muy repräsentativ) lässt mich con el Gedanken spielen, una Workshop a el Thema a redactar. Yo podría me para Ejemplo vorstellen, una Anfang meiner SKControl.DLL en XProfan nachzubauen...
MfG
Sebastian |
|
|
| |
|
|
|
Sebastian König | Jac
Noch ne blöde Cuestión: Wenn Yo en XProfan qué en el interne Listboxliste fülle, entonces kann Yo en uno DLL, el con Prf2CPP erstellt wurde no darauf zugreifen oder? Und umgekehrt sicher auch no? Das wäre uno el Gründe en DLL-Erstellung a verzichten, en el entsprechenden Fall jedenfalls.
Einfache Cuestión - el Antwort es algo kompliziert Ohne lo probiert a haben, sería Hice el Gedächtnis sagen, dass innerhalb des DLL-Codes folgendes gilt:
* Füllen y Cambio el Liste funktioniert * MoveListToStr$/Mem/Array() auch * MoveListToHandle() funktioniert no con List- y ComboBoxes, con Edits aber ya
El Gründe esta mentira en él, dass de Profano2Cpp-Anwendungen una MultiThread-Konzept benutzen, DLL pero no y yo para MoveListToHandle() no Hilo-Test instalado habe.
Das todo gilt auch para unos pocos weitere Dinge. Im Einelfall: Einfach ausprobieren y mich ggf. en Anpassung bitten.
Falls ¿Quieres decir que, dass Usted en XProfan el Liste füllst y luego en el DLL así trabajo möchtest: Es natürlich no - con keiner DLL, porque el weiß sí nichts de XProfans interner Liste... EDIT: Ok, ¿Quieres decir que wohl genau el - Yo war algo a rápidamente con el obigen Antwort, aber tal vez es el trotzdem interessant.
MfG
Sebastian |
|
|
| |
|
|
|
| Hmmm..., como se una Bereichsvariable b# transferencia a el DLL, wo el grösse wechselt? Soll eien Dll voluntad.
Übergabe wert&,b#,c# y Volver z&. KompilierenMarcaSeparación mfg. |
|
|
| |
|
|
|
Sebastian König | Peter Bierbachh
Hmmm..., como se una Bereichsvariable b# transferencia a el DLL, wo el grösse wechselt?
El DLL-Función muss para jede Bereichsvariable wissen, como groß ellos es. D.h. el Größen necesario como Parámetro transferencia voluntad. Ejemplo: KompilierenMarcaSeparación Wenn mehrere Bereiche el gleiche Größe haben, puede ser se natürlich überflüssige Parámetro ersparen...
MfG
Sebastian |
|
|
| |
|
|
|
| Irgend algo stimmt hier no.
Wenn Yo en el DLL sólo otra vez neu dimensionieren muss....esta Bereichsvariablen. Lo beisst se qué...
Kann no stimmen...oder...
Wird wahrscheinlich para el Programmablauf doch zeitaufwendiger, si yo en el DLL otra vez con el zuweisungen en Null anfangen muss.
mfg |
|
|
| |
|
|
|
Sebastian König | Yo habe el hilo gerade bajo el neuen Namen wiedergefunden...
Peter Bierbachh
Irgend algo stimmt hier no. Wenn Yo en el DLL sólo otra vez neu dimensionieren muss....esta Bereichsvariablen. Lo beisst se qué... Kann no stimmen...oder... Wird wahrscheinlich para el Programmablauf doch zeitaufwendiger, si yo en el DLL otra vez con el zuweisungen en Null anfangen muss. Also como hast Usted algo falso verstanden... es no nötig, el Zona en el DLL neu a dimensionieren. Lo va sólo por lo tanto, dass Usted uno exportierten Procedimiento, el Bereiche como Parámetro esperado, mitteilen musst, como groß esta en el aufrufenden Code dimensioniert fueron.
Es völlig analog a el Arbeit con API-Características como para Ejemplo ZeroMemory(). Como übergibt uno en efecto una Zona (i.e. Zeiger) y el zugehörige Größe...
MfG
Sebastian |
|
|
| |
|
|
|
| Ach sooooo,....Tuve ahora falso verstanden vom Ejemplo. Wäre en efecto sonst paradox.
mfg |
|
|
| |
|
|
| |
|
- Página 2 - |
|
|
| |
|
| |
|
|
|
Sebastian König | IF, Beitrag=51996, Zeitpunkt=24.04.2009
*a*el*kursus*erinner*
Sí, Asche en mein Haupt! Yo habe en el Moment desafortunadamente muy wenig Tiempo (habe antes kurzem con meiner Diplomarbeit comenzó) y primero veces hatte el Actualización sobre Profano2Cpp 2.0b Priorität. Dieses Wochenende bin Yo unterwegs y komme así wohl auch a nichts...
Aber todos es no vergessen y en meiner Platte befindet se auch ya una Anfang des Ejemplo-Projekts... Yo voluntad mich bemühen, lo möglichst bald fertigzustellen!
MfG
Sebastian |
|
|
| |
|
|