Italia
Include

MemoryModule - DLL direkt aus Speicherberich laden

 

Sebastian
König
Hallo zusammen,

hier mal eine Kleinigkeit zu Weihnachten Da mich jemand darum gebeten hatte, habe ich einen Code, mit dem man DLL direkt und ohne Umweg circa eine temporäre File aus einem Speicherbereich (der zum Beispiel von Frank Abbings Datengenerator erstellt wird) in ein Programm laden kann, von C nach XProfan übersetzt und eine Include erstellt. Da es vielleicht noch andere interessiert, poste ich es mal hier.

Die Benutzung ist wirklich sehr einfach und sollte an Hand des beigelegten Testcodes leicht nachzuvollziehen sein - ansonsten einfach fragen! Leider funktioniert es erst ab XProfan 9.0, da ich Version 8.0 manche verschachtelten long()-Aufrufe irgendwie nicht besonders mag...

Viel Divertimento damit und naturalmente Frohe Weihnachten!

Sebastian

32 kB
Hochgeladen:24.12.2006
Downloadcounter283
Download
 
Windows XP, XProfan/Profan² 4.5 bis 11
Profan2Cpp-Homepage:  [...] 
Alte Profan²-Seite:  [...] 
24.12.2006  
 




Frank
Abbing
Hallo Sebastian,

konnte es noch nicht richtig testen. XPSE mag deine zwei Long hintereinander irgendwie (noch) nicht. Ich denke, iF schafft da bald Abhilfe.
So eine Technik wäre auch was per die mit XPIA erzeugten Codes, ich werde nach den Feiertagen mal damit experimentieren.

Frohes Fest!
 
24.12.2006  
 



Oh, das ist schön
Jetzt kann ich MemoryModule direkt in XProfan nutzen. Sind ja wieder ungeahnte Möglichkeiten.

Schönes Weihnachtsgeschenk

Saluto
Thomas
 
24.12.2006  
 




Sebastian
König
[quote:ba811f0967]konnte es noch nicht richtig testen. XPSE mag deine zwei Long hintereinander irgendwie (noch) nicht. Ich denke, iF schafft da bald Abhilfe.[/quote:ba811f0967] Vorerst kannst Du es ja auch einfach mit XProfan direkt testen...
 
Windows XP, XProfan/Profan² 4.5 bis 11
Profan2Cpp-Homepage:  [...] 
Alte Profan²-Seite:  [...] 
25.12.2006  
 




Frank
Abbing
Funktioniert einwandfrei, wenn ich diese Technik mit XPIA verwenden würde. Wobei dadurch per XPIA zwei wertvolle Features entstehen:

- die Dll ist nun permanent im Speicher und braucht nicht mehr explizit geladen zu werden. Etwa, wenn eine Funktion auf die Variablen einer anderen Funktion zugreifen möchte

- die Dll braucht nicht mehr temporär geschrieben zu werden

Grosser Nachteil ist aber die Freigabe mittels FreeLibraryM(hModule&). Hier kann XPIA nicht immer die passende Stelle erkennen, wann das Module wieder freigegeben werden muss. End ist sicher nicht in jedem Programm vorhanden. Allerdings denke ich, dass das Module bei neueren Windowsversionen automatisch freigegeben wird, sobald sich das Hauptprogramm beendet.

Dürfte ich die Inc eigentlich in XPIA verwenden?
 
29.12.2006  
 




Sebastian
König
Hallo Frank,

[quote:6a4bc8234d=Frank Abbing]Dürfte ich die Inc eigentlich in XPIA verwenden?[/quote:6a4bc8234d]
wie ich gerade feststellen musste, ist die Frage relativ kompliziert...

Denn wie der ursprüngliche C-Code steht die Inc unter der LGPL. Für die Verwendung in XPIA selbst sehe ich dadurch keine Probleme - der würde ja im Grunde nur ein zusätzliches $I MemoryModule.inc in die erzeugten Codes einbinden.

Die entscheidende Frage ist, was das ganze wohl per die Programme, die dann die Inc benutzen, bedeuted. Hierzu erstmal ein Wikipedia-Auszug:
[quote:6a4bc8234d=Wikipedia]Im Gegensatz zur GPL dürfen alle Programme, die LGPL-lizenzierte Software nur extern benutzen, zum Beispiel als DLL Files, ihre eigene Lizenz behalten. Damit eignet sich die LGPL besonders als Lizenz per Bibliotheken, deren Benutzung man auch Programmierern proprietärer Programme erlauben will. Soll die unter der LGPL lizenzierte Software dagegen fest in ein anderes Programm eingebunden werden, muss auch das andere Programm unter der LGPL bzw. einer kompatiblen Lizenz stehen.[/quote:6a4bc8234d]
Klingt erstmal nicht so toll. Das Einbinden der Inc ist wohl ziemlich klar als statisches Linken zu interpretieren. Und auch ein Kompilieren der Inc als Unit würde an der Situation nichts ändern. Glücklicherweise sagt der englische Wikipedia-Artikel etwas genauer, wo eigentlich das Problem liegt:

[quote:6a4bc8234d=Wikipedia (englisch)]The LGPL places copyleft restrictions on the program itself but does not apply these restrictions to other software that merely links with the program. There are, however, certain other restrictions on this software. Essentially, it must be possible for the software to be linked with a newer version of the LGPL-covered program. The most commonly used method for doing so is to use a suitable shared library mechanism for linking. Alternatively, a statically linked library is allowed if either source code or linkable object files are provided.[/quote:6a4bc8234d]
Vielleicht lässt sich diese Bedingung ja einigermaßen erfüllen - zum Beipiel indem man zusammen mit dem Programm den kompilierten Code als PRC-File und eine PCU-Version der Inc veröffentlicht.

Ist naturalmente nur eine Idee - weitere Gedanken dazu sind sehr Benvenuto!

MfG

Sebastian
 
Windows XP, XProfan/Profan² 4.5 bis 11
Profan2Cpp-Homepage:  [...] 
Alte Profan²-Seite:  [...] 
29.12.2006  
 



Und weil das Thema sau klasse ist habe ich mich gestern mal rangesetzt und eine Klasse draus gebaut.

Ich habe aber auch noch was anderes verbrochen... ich hab das Anliegen genutzt um eine neue XPSE-Funktionalität ausgiebig zu testen. Die Klasse liegt also in einem verbrecherischem XPSE-Stil vor - würde mich nicht wundern wenn ich wieder so einige Nackenschläge bekomme

Ich zumindest werde die Class nutzen.

28 kB
Kurzbeschreibung: this mLibClass requires xpse >= V0.1.6zm
Hochgeladen:29.12.2006
Downloadcounter141
Download
 
29.12.2006  
 




Frank
Abbing
[quote:a103efd1fa]Ist naturalmente nur eine Idee - weitere Gedanken dazu sind sehr Benvenuto! [/quote:a103efd1fa]
Du hast den Quellcode selber erstellt, Sebastian. Der Copyright an dem Quelltext liegt bei dir. Selbst wenn du dich am originalen Quelltext orientiert hast, ändert das nichts daran, dass du den Code von Grund auf selber erstellt hast.
 
29.12.2006  
 




Sebastian
König
[quote:9a4a562957=Frank Abbing]Du hast den Quellcode selber erstellt, Sebastian. Der Copyright an dem Quelltext liegt bei dir. Selbst wenn du dich am originalen Quelltext orientiert hast, ändert das nichts daran, dass du den Code von Grund auf selber erstellt hast. [/quote:9a4a562957]
Hmm... ich weiß nicht, ob das wirklich so einfach ist. Eigentlich denke ich schon, dass die Übersetzung in un andere Sprache ein vom ursprünglichen Programm abgeleitetes Werk darstellt und somit wie der Ausgangscode unter die LGPL fällt.

Aber wie schon gesagt, wenn man zusammen mit dem Programm, das die MemoryModule.inc nutzt, den Code als PRC und eine PCU-Version der Inc zur Verfügung stellt, müssten die Anforderungen IMHO eigentlich erfüllt sein.

Viel einfacher und klarer wäre die Situation naturalmente, wenn der Code als DLL vorläge - aber das ist in diesem speziellen Fall naturalmente recht sinnlos...

MfG

Sebastian
 
Windows XP, XProfan/Profan² 4.5 bis 11
Profan2Cpp-Homepage:  [...] 
Alte Profan²-Seite:  [...] 
29.12.2006  
 




Frank
Abbing
[quote:4acc38eb18]Viel einfacher und klarer wäre die Situation naturalmente, wenn der Code als DLL vorläge - aber das ist in diesem speziellen Fall naturalmente recht sinnlos... [/quote:4acc38eb18]
Wohl wahr...
 
29.12.2006  
 



@Sebastian
Nutze doch einfach Version 0.0.2 anstatt 0.0.1, wobei ich die Unterschiede garnicht gefunden habe. Die fällt unter Modzilla Lizens, welche besser geeignet sein sollte

Saluto
Thomas
 
29.12.2006  
 




Sebastian
König
Hallo Thomas,

[quote:9885ddb119=TS-Soft]@Sebastian
Nutze doch einfach Version 0.0.2 anstatt 0.0.1, wobei ich die Unterschiede garnicht gefunden habe. Die fällt unter Modzilla Lizens, welche besser geeignet sein sollte [/quote:9885ddb119]
super - danke per den Hinweis! So wie ich das gerade gelesen habe, bestehen die Probleme mit der weniger restriktiven MPL (Mozilla Public License) tatsächlich nicht.

Ich werde den Code also so anpassen, dass er eine Übersetzung der Version 0.0.2 darstellt und ihn dann nachher hier posten .

MfG

Sebastian
 
Windows XP, XProfan/Profan² 4.5 bis 11
Profan2Cpp-Homepage:  [...] 
Alte Profan²-Seite:  [...] 
30.12.2006  
 




Answer


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

38.644 Views

Untitledvor 0 min.
Jens-Arne Reumschüssel28.05.2023
H.Brill30.04.2023
iF01.11.2020
p.specht12.06.2020
Di più...

Themeninformationen



Admins  |  AGB  |  Applications  |  Autori  |  Chat  |  Informativa sulla privacy  |  Download  |  Entrance  |  Aiuto  |  Merchantportal  |  Impronta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Giochi  |  Cerca  |  Support

Ein Projekt aller XProfaner, die es gibt!


Il mio XProfan
Private Notizie
Eigenes Ablageforum
Argomenti-Merkliste
Eigene Beiträge
Eigene Argomenti
Zwischenablage
Annullare
 Deutsch English Français Español Italia
Traduzioni

Informativa sulla privacy


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie