Italia
Include

MemoryModule - DLL direkt aus Speicherberich laden

 
- Page 1 -



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  
 



 
- Page 2 -



Sebastian
König
So - hier ist jetzt Version 0.0.2 - veröffentlicht unter der Mozilla Public License.

Noch ein kleiner Hinweis: Für den Einsatz in fertigen Programmen lassen sich die Debug-Ausgaben sehr einfach komplett deaktivieren, indem die Print-Zeile in der Prozedur OutputStatus auskommentiert wird.

MfG

Sebastian

46 kB
Kurzbeschreibung: Version 0.0.2
Hochgeladen:30.12.2006
Downloadcounter129
Download
 
Windows XP, XProfan/Profan² 4.5 bis 11
Profan2Cpp-Homepage:  [...] 
Alte Profan²-Seite:  [...] 
30.12.2006  
 



Wer lieber mit Klassen arbeitet (besonders wenn man MemoryModule in PCUs verwendet wichtig) kann auch meine geänderte Version nutzen. Ist nicht dasselbe wie iF seine Klasse, necessario also nicht unbedingt XPSE

Ist jetzt nur die Include, MemoryModule.ph wird zusätzlich noch necessario. Anleitung gibts keine, dafür den dokumentierten angepaßten Testcode
KompilierenMarkierenSeparieren
 $I LoadDLLMem.inc
 $I TestDLL.inc
WindowTitle "MemoryModule - Test"
Cls
Klasse erstellen
Declare MM#
MM# = New(LoadDLLMem, mem#)
Dispose mem#
Declare pFunc&
pFunc& = MM#.Get("TestBox") entspricht GetProcAddressM, erster Parameter entfällt
Print "Funktion:", pFunc&
Case pFunc& <> 0 : Call(pFunc&, %hwnd, "Hallo Welt!")
MM#.Free()  entspricht FreeLibraryM, Parameter entfällt
Print
Print "Taste zum Beenden!"
WaitKey
End

Einziger Unterschied ist nur, das die Funktionen in einer Klasse gekapselt sind!

Saluto
Thomas

5 kB
Hochgeladen:07.01.2007
Downloadcounter159
Download
 
30.12.2006  
 




Frank
Abbing
Experimentell habe ich eine XPIA-Version entwickelt, die mit den MemoryModulen arbeitet. Dabei werden die Module direkt in den Code integriert, ohne dass eine separate inc- oder ph-File nötig wäre. Zu finden im XPIA-Foro.
 
30.12.2006  
 



@Thomas: Ich hatte auch einen einfachen Callwrapper der Klasse hinzugefügt, ich fand den ganz praktisch ich finde den solltest Du übernehmen.
 
30.12.2006  
 



[quote:6184349714=iF]@Thomas: Ich hatte auch einen einfachen Callwrapper der Klasse hinzugefügt, ich fand den ganz praktisch ich finde den solltest Du übernehmen. [/quote:6184349714]
Die Idee ist ja nicht schlecht, aber das Get war mir wichtiger, weil nur einmal gesucht wird. Ein Call dessen Zeitvorsprung aufgrund von jedesmal suchen fehlt ist nicht das gelbe vom Ei Werde aber etwas ähnliches bei Gelegenheit noch integrieren, aumento die Kompatibilität zu Deiner Klasse
 
30.12.2006  
 



Die Funktion war auch keinesfalls per maximale Performance gedacht, eher als Helper per Dinge bei denen es nicht ins Gewicht fällt - wie z.B. MessageBoxen etc...
 
30.12.2006  
 



Hab jetzt die Methode Call zur Klasse hinzugefügt (obiger Link)
CLASS#.Call(Funktion, P1&, P2& ... P12&)
Strings sind per Addr(Text$) zu trasferimento
 
30.12.2006  
 




Sebastian
König
Update auf Version 0.0.2a

Nach einem Hinweis von Thomas Schulz (danke nochmal!) habe ich noch eine weitere Funktion eingebaut: GetInstanceM. Der Rückgabewert kann als Instanz- bzw. Modul-Handle zum Beispiel zum Laden von Resourcen aus der DLL verwendet werden.

45 kB
Kurzbeschreibung: Version 0.0.2a
Hochgeladen:07.01.2007
Downloadcounter341
Download
 
Windows XP, XProfan/Profan² 4.5 bis 11
Profan2Cpp-Homepage:  [...] 
Alte Profan²-Seite:  [...] 
07.01.2007  
 



Hab die Classe LoadDLLMem auch um die Methode GetHandle ohne Parameter erweitert

Saluto
Thomas
 
07.01.2007  
 



Ich habe den Eindruck, dass das leider nicht mit allen DLL geht - liege ich da richtig?

PS: Empfehle auch hierzu ModHunter, der auch in dieser Art geladene Module listet.
 
30.03.2007  
 




Frank
Abbing
Mit welchen Dll gehts denn nicht? Mir ist finora noch keine unter gekommen.
 
30.03.2007  
 



vlt. dlls die sich als file selbst öffnen wollen...
 
30.03.2007  
 




Answer


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

38.623 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