Aktuelle Zeit: 12.05.2025, 22:59

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 10 Beiträge ] 
Autor Nachricht
BeitragVerfasst: 10.04.2009, 09:31 
Offline

Registriert: 12.09.2008, 21:41
Beiträge: 187
Wohnort: Deutschland
Hi Leute,

ich würde gerne die Irrlicht dll aus dem SubVerzeichnis "/dll" laden, wie geht das?

Bisher zeigt mir das Programm immer nur an "Dll nicht gefunden".

Was muss ich am Programm ändern, damit das funktioniert?
Kann man vielleicht generell ein Verzeichnis angeben aus dem die Exe alle Dll's laden soll?

Gruß
Scarabol

_________________
My Toolbox:
- Irrlicht 1.7.1
- Blender 2.49a
- Microsoft Visual C++ Express Edition 2008
- Newton Game Dynamics 2.xx
Regeln zur Programmierung:
Regel 1: Die Programmiersprache hat keine Fehler.
Regel 2: Solltest du doch einen Fehler finden, tritt automatisch Regel 1 in Kraft.


Nach oben
 Profil  
 
BeitragVerfasst: 10.04.2009, 09:37 
Offline
Moderator
Benutzeravatar

Registriert: 25.03.2007, 18:11
Beiträge: 834
Wohnort: Hagen, NRW
Entweder du fügst diesen /dll ordner in die Umgebungsvariablen ein (Windows PATH, Linux und Mac keine Ahnung ^^) oder du musst die DLL dynamisch Laden und dann die createDevice funktion selber raussuchen und aufrufen.

Für Windows sieht das ungefähr so aus:
Code:
dll = LoadLibray( "./dll/Irrlicht.dll" );
proc = GetProcAddress( dll, "createDevice" );

device = proc( EDT_OPENGL, dimension2du(), ... );


Für Linux und Mac hab ich auch keine Ahnung wie man dynamisch bibliotheken lädt.

Als 3. unschöne Möglichkeit wär da noch das Programm IMMER mit einer Verknüpfung aufzurufen, die das Programm dann im /dll verzeichniss ausführt.

_________________
Phenom X4 9950 BE | 6144MB DDR2-800 | GeForce 8800GT 512MB | Asus M3A32-MVP Deluxe | 2TB HDD | 520W Seasonic NT | Soprano Tower | Samsung 22" TFT + Fujitsu-Siemens 17" TFT + Toshiba 42" FullHD LCD | Windows 7 Proessional x64
Behind the Brain


Nach oben
 Profil  
 
BeitragVerfasst: 10.04.2009, 09:39 
Offline

Registriert: 12.09.2008, 21:41
Beiträge: 187
Wohnort: Deutschland
hmm,

schade ich dachte das währ einfacher...

Trotzdem vielen Dank für die schnelle Hilfe

Gruß
Scarabol

_________________
My Toolbox:
- Irrlicht 1.7.1
- Blender 2.49a
- Microsoft Visual C++ Express Edition 2008
- Newton Game Dynamics 2.xx
Regeln zur Programmierung:
Regel 1: Die Programmiersprache hat keine Fehler.
Regel 2: Solltest du doch einen Fehler finden, tritt automatisch Regel 1 in Kraft.


Nach oben
 Profil  
 
BeitragVerfasst: 17.04.2009, 15:21 
Offline
Benutzeravatar

Registriert: 17.02.2008, 14:08
Beiträge: 125
Es gibt genau 2 "generelle" Ordner für dlls:
-> der Ordner mit deiner Exe
-> c:/windows/system32 (oder entsprechend auf anderen windows versionen)

Bei Linux wird Irrlicht sowieso statisch gelinkt. Bei Mac weiß ich auch nicht wies da läuft.

Auf Windows kannst du Irrlicht auch statisch linken, das bedeutet keine dll zu benutzen sondern das was eigentlich in der dll drin ist mit in die exe zu packen.

MfG
FTC

_________________
Cold-Death
Magnon


Nach oben
 Profil  
 
BeitragVerfasst: 17.04.2009, 16:41 
Offline
Moderator
Benutzeravatar

Registriert: 25.03.2007, 18:11
Beiträge: 834
Wohnort: Hagen, NRW
Es gibt mehr als die beiden Orte. Welche genau das sind weiß ich aber jetzt ausm Kopf auch nicht. Steht irgendwo in der MSDN. Als dritter würde mir zum Beispiel noch das Arbeitsverzeichniss (was nicht unbedingt der Ort sein muss wo die exe liegt) einfallen.

_________________
Phenom X4 9950 BE | 6144MB DDR2-800 | GeForce 8800GT 512MB | Asus M3A32-MVP Deluxe | 2TB HDD | 520W Seasonic NT | Soprano Tower | Samsung 22" TFT + Fujitsu-Siemens 17" TFT + Toshiba 42" FullHD LCD | Windows 7 Proessional x64
Behind the Brain


Nach oben
 Profil  
 
BeitragVerfasst: 17.04.2009, 16:52 
Offline

Registriert: 12.09.2008, 21:41
Beiträge: 187
Wohnort: Deutschland
Kann ich davon irgendeinen für meine Zwecke "mißbrauchen"?

Gruß
Scarabol

_________________
My Toolbox:
- Irrlicht 1.7.1
- Blender 2.49a
- Microsoft Visual C++ Express Edition 2008
- Newton Game Dynamics 2.xx
Regeln zur Programmierung:
Regel 1: Die Programmiersprache hat keine Fehler.
Regel 2: Solltest du doch einen Fehler finden, tritt automatisch Regel 1 in Kraft.


Nach oben
 Profil  
 
BeitragVerfasst: 25.04.2009, 21:52 
Offline

Registriert: 16.01.2008, 12:31
Beiträge: 79
Die Suchreihenfolge ist folgende:
1.) Arbeitsverzeichnis
2.) System Root
3.) Ordner die in der PATH Variable angegeben sind

Du kannst die *.dll selber laden, oder aber einfach das Arbeitsverzeichnis ändern z.B. über eine Verknüpfung. Dann musst nur bedenken, das die Bildchen die lädst usw. noch einen Ordner weiter zurück liegen.


Nach oben
 Profil  
 
BeitragVerfasst: 25.04.2009, 22:37 
Offline

Registriert: 12.09.2008, 21:41
Beiträge: 187
Wohnort: Deutschland
Ahh, das Arbeitsverzeichnis gute Idee wie kann ich das ändern?
Geht das auch mehrmals, also beispielsweise um die Bildchen zu laden dann wieder zum ursprünglichen zurückkehren...

Gruß
Scarabol

_________________
My Toolbox:
- Irrlicht 1.7.1
- Blender 2.49a
- Microsoft Visual C++ Express Edition 2008
- Newton Game Dynamics 2.xx
Regeln zur Programmierung:
Regel 1: Die Programmiersprache hat keine Fehler.
Regel 2: Solltest du doch einen Fehler finden, tritt automatisch Regel 1 in Kraft.


Nach oben
 Profil  
 
BeitragVerfasst: 26.04.2009, 08:15 
Offline

Registriert: 16.01.2008, 12:31
Beiträge: 79
Ja das geht.
http://msdn.microsoft.com/en-us/library/aa364934(VS.85).aspx
und
http://msdn.microsoft.com/en-us/library/aa365530(VS.85).aspx

Es gibt allerdings Programme die sind so scheisse geschrieben das die völlig durcheinander kommen, wenn das Arbeitsverzeichnis verändert wird. Daher solltest Du es immer gleich wieder auf den ursprünglichen Wert zurück setzen.

Allerdings wirst Du die *.dll dann auch selbst mit LoadLibrary selbst laden müssen.

http://msdn.microsoft.com/en-us/library/ms682599(VS.85).aspx

Ich würde die *.dlls bei der *.exe liegen lassen. Das macht praktisch jedes Programm. Oder Du machst nen bin Ordner, packst da auch die *.exe rein und erstellst einen Ordner weiter oben eine Verknüpfung dahin.


Nach oben
 Profil  
 
BeitragVerfasst: 27.04.2009, 17:42 
Offline

Registriert: 12.09.2008, 21:41
Beiträge: 187
Wohnort: Deutschland
hmm, ok, vielen Dank

Ich denke ich lass es so wie es ist, du hast recht es gibt jede Menge Programme die sowas einfach nicht gebacken kriegen, und solche Fehler will ich weder suchen noch finden, also machs ich es denkbar einfach und lass die Dlls direkt bei der Exe, dann ist es absolute sicher und es kann nix passieren, bis auf die eigene Dummheit ;-)

Gruß
Scarabol

_________________
My Toolbox:
- Irrlicht 1.7.1
- Blender 2.49a
- Microsoft Visual C++ Express Edition 2008
- Newton Game Dynamics 2.xx
Regeln zur Programmierung:
Regel 1: Die Programmiersprache hat keine Fehler.
Regel 2: Solltest du doch einen Fehler finden, tritt automatisch Regel 1 in Kraft.


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 10 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 6 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de