|
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Make-Grafik
Anmeldungsdatum: 08.10.2012 Beiträge: 29
|
Verfasst am: 23.11.2014, 18:44 Titel: Ressource DLL erstellen |
|
|
Schönen guten Abend
Ich würde gerne mit FreeBASIC eine reine Ressourcen DLL erstellen, jedoch habe ich keinen Anhaltspunkt wie das zu realisieren ist. „Normale DLLs“ zu schreiben klappt ohne Probleme, aber wenn ich versuche verschiedene Daten bereitzustellen in der DLL und diese außerhalb mit FindResource oder LoadResource ansprechen will, klappt da gar nichts.
In dem Themengebiet habe ich noch nicht so große Kenntnisse, daher fehlt es mir leider auch an einem Beispielcode. Die Forensuche hat mich leider auch nicht weiter gebracht.
Ich weiß, sind magere Informationen. Hoffe aber das mir da jemand einen Schubs in die richtige Richtung geben kann. (Vielleicht ein Link oder Beispielcode). Google habe ich auch schon angestrengt! :/
LG. Make _________________ Hmn :/ Mal schaun was es bringt... |
|
Nach oben |
|
|
St_W
Anmeldungsdatum: 22.07.2007 Beiträge: 949 Wohnort: Austria
|
Verfasst am: 23.11.2014, 23:46 Titel: |
|
|
Hier eine Idee:
Du könntest dir einmal folgenden Blog-Eintrag anschaun, möglicherweise sind falsche hInstance (nämlich die von der DLL) dafür verantwortlich, dass es nicht funktioniert.
http://blog.m-ri.de/index.php/2007/12/12/die-unsitte-immer-getmodulehandlenull-fuer-hinstance-in-createwindow-und-registerclass-zu-verwenden/
In FB is das leider nicht so einfach, denn es gibt keine DllMain Methode, die man selbst implementieren könnte.
Ich hab das einmal so gemacht:
Wie folgt linken:
Zitat: | fbc -dll "meineDLL.bas" "resourcen.rc" -Wl " --entry _MAIN@12" -x "meineDLL.dll" |
Und im Programm eine entsprechende Methode implementieren und die FB-Initalisierungs-Funktion manuell aufrufen: Code: | #Include "windows.bi"
Declare function DllMainCRTStartup Cdecl Alias "DllMainCRTStartup" (ByVal hInst As HINSTANCE, ByVal fdwReason As DWORD, Byval lpvReserved As LPVOID) As DWORD
Public Function Main(ByVal hInst As HINSTANCE, ByVal fdwReason As DWORD, Byval lpvReserved As LPVOID) As DWORD
Select Case fdwReason
Case DLL_PROCESS_ATTACH
DllMainCRTStartup(hInst, fdwReason, lpvReserved)
'...
'... hInst speichern/verwenden...
'...
Case DLL_PROCESS_DETACH
'...
case DLL_THREAD_ATTACH
case DLL_THREAD_DETACH
End Select
Return TRUE
End Function |
Ich hab leider gerade zu wenig Zeit das alles auszuprobieren, aber vielleicht hilfts. _________________ Aktuelle FreeBasic Builds, Projekte, Code-Snippets unter http://users.freebasic-portal.de/stw/
http://www.mv-lacken.at Musikverein Lacken (MV Lacken) |
|
Nach oben |
|
|
Jojo alter Rang
Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 24.11.2014, 08:41 Titel: |
|
|
Eigentlich sollte eine resource DLL soweit ich weiß gar keine DllMain haben... Also um genau zu seinen gar keinen Code, nur Ressourcen. Und AFAIK hat fbc dafür keinen Switch. _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
|
|
Nach oben |
|
|
Make-Grafik
Anmeldungsdatum: 08.10.2012 Beiträge: 29
|
Verfasst am: 26.11.2014, 18:23 Titel: |
|
|
Achso, also ist das mit FreeBASIC nicht möglich.
Dann muss ich bei einer normalen DLL bleiben und mit nem Workaround arbeiten. Danke _________________ Hmn :/ Mal schaun was es bringt... |
|
Nach oben |
|
|
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|