Hallo,
Ich möchte einer dll-Datei in mein Programm einbinden.
Ich habe folgende Eintrag gefunden:
http://forums.purebasic.com/german/view ... 16&t=27116
Leider ist de Link nicht mehr vorhanden.
dll fest in exe einbinden
dll fest in exe einbinden
Win-10, PB 5.31 (Windows - x86)
Re: dll fest in exe einbinden
http://www87.zippyshare.com/v/csWmFWIc/file.html
oder alternativ in reinem PB
http://www.purebasic.fr/english/viewtop ... 12&t=67345
oder alternativ in reinem PB
http://www.purebasic.fr/english/viewtop ... 12&t=67345
PureBasic 5.46 LTS (Windows x86/x64) | windows 10 x64 Oktober failure
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Re: dll fest in exe einbinden
Statt meine MemoryModule nimm lieber dies hier: http://www.purebasic.fr/english/viewtop ... 97#p499497
von Luis. Haste alles als PB-Source.
//edit: Iiih, da war einer schneller
PS: Ist aber nicht mit jeder DLL erlaubt und Antiviren-Programme mögen sowas auch nicht. Lieber normal DLL laden!
von Luis. Haste alles als PB-Source.
//edit: Iiih, da war einer schneller

PS: Ist aber nicht mit jeder DLL erlaubt und Antiviren-Programme mögen sowas auch nicht. Lieber normal DLL laden!
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Re: dll fest in exe einbinden
Danke für die Antworten.
Ich habe es mit Luis-Code probiert und bekomme die Meldung
"Ungültiger Speicherzugriff.(Lesefehler an der Adresse 0)"
in der Zeile "if rmchartInit()"
Was habe ich da falsche gemacht ?
Ich habe es mit Luis-Code probiert und bekomme die Meldung
"Ungültiger Speicherzugriff.(Lesefehler an der Adresse 0)"
in der Zeile "if rmchartInit()"
Was habe ich da falsche gemacht ?
Code: Alles auswählen
IncludeFile "MemDLL.pbi"
PrototypeC.i rmchartInit()
PrototypeC glfwTerminate()
PrototypeC.i glfwGetVersionString()
Global hglfw = MemDLL_LoadLibrary(?rmchart)
Global rmchartInit.rmchartInit = MemDLL_GetProcAddress(hglfw, "rmchartInit")
Global glfwTerminate.glfwTerminate = MemDLL_GetProcAddress(hglfw, "glfwTerminate")
Global glfwGetVersionString.glfwGetVersionString = MemDLL_GetProcAddress(hglfw, "glfwGetVersionString")
Procedure Main()
If rmchartInit()
Debug PeekS(glfwGetVersionString(), -1, #PB_UTF8)
glfwTerminate()
EndIf
MemDLL_FreeLibrary(hglfw)
EndProcedure
Main()
DataSection
rmchart:
IncludeBinary "rmchart.dll"
EndDataSection
Win-10, PB 5.31 (Windows - x86)
Re: dll fest in exe einbinden
Du forderst von der DLL eine Funktion an, die diese wohl nicht hat.marcelx hat geschrieben:Was habe ich da falsche gemacht ?
Außerdem, wäre ein wenig "Error-Handling" erwünschenswert.
PureBasic 5.46 LTS (Windows x86/x64) | windows 10 x64 Oktober failure
Re: dll fest in exe einbinden
Ich gebe zu, es war dilettantisch angepackt, ohne der Hintergrund von MemDll.pbi zu wissen.
Wie ich das verstehe, muss ich für jeden dll-funktion ein MemDLL_GetProcAddress() verwenden.
Ich überlege doch die dll mit zu verwenden; wäre doch einfacher.
Wie ich das verstehe, muss ich für jeden dll-funktion ein MemDLL_GetProcAddress() verwenden.
Ich überlege doch die dll mit zu verwenden; wäre doch einfacher.
Win-10, PB 5.31 (Windows - x86)
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Re: dll fest in exe einbinden
Das wäre in jedem Fall besser.marcelx hat geschrieben:Ich überlege doch die dll mit zu verwenden; wäre doch einfacher.
1. kein Verstoß gegen die Lizenz, falls es verboten sein sollte, die DLL zu includen.
2. mindert die Gefahr von false/positive (Antivirenprogramme, heuristik)
3. der Autor der DLL kommt auch zu seinem Recht / Anerkennung
Gruß
Thomas
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Re: dll fest in exe einbinden
"Ich bin ein Fan von 'all in one' Programmen. Also alle nötigen Dateien sind in der Programmdatei enthalten"
Manchmal muss man Kompromissen schließen
Gruß
MarcelX
Manchmal muss man Kompromissen schließen
Gruß
MarcelX
Win-10, PB 5.31 (Windows - x86)