Diese ist bestandteil eines Up-to-Date-Windows,
aber z.b. nicht einer ursprünglichen Installation von Win2000.
Daher wäre es praktisch, das Vorhandensein dieser DLL zu überprüfen,
bevor man versucht, die 3D-Engine zu initiieren.
in diesem Zuge habe ich auch gleich eine Prüfung auf die Engine3D.dll hinzugefügt,
die in der Installation eures Games enthalten sein muss.
die benötigten DLL werden kurz versucht zu öffnen, dadurch ist sichergestellt,
dass die Prüfung auch die Standardpfade benutzt wie der InitEngine3D()-Befehl.
eine Umsetzung über FileSize und Umgebungsvariablen (PATH) wäre zwar denkbar,
aber ungleich komplizierter.
dieser Code dient als Beispiel.
der Fehlermeldungs-Text darf, aber muss nicht übernommen werden.
Code: Alles auswählen
; **************************************************
;
; Check for necessary DLLs
; before initiating the 3D-Engine
;
; by Kaeru Gaman, 2007-12-04
;
; **************************************************
; Check for Windows internal DLL
; DLL is not present e.g. on not updated win2000 systems
If OpenLibrary(0, "MSVCP60.dll")
CloseLibrary(0)
Else
out$ = "Die 3D-Engine benötigt die Version 6.0 der VC++ Runtime-Library. (MSVCP60.dll)" + #CRLF$ + #CRLF$
out$ + "Diese DLL ist Bestandteil regulärer Updates des Betriebssystems." + #CRLF$
out$ + "Bitte updaten Sie ihr Windows, oder laden Sie die DLL einzeln von der Microsoft-Homepage herunter."
MessageRequester("3D-Engine Error: Betriebssystem unvollständig", out$, #MB_ICONERROR )
End
EndIf
; Check for OGRE's Engine3D.dll
; to buffer uncomplete install and such
If OpenLibrary(0, "Engine3D.dll")
CloseLibrary(0)
Else
out$ = "Die 3D-Engine benötigt die O.G.R.E. Runtime-Library. (Engine3D.dll)" + #CRLF$ + #CRLF$
out$ + "Die Installation dieses Programms ist unvollständig oder fehlerhaft." + #CRLF$
out$ + "Bitte installieren Sie dieses Produkt erneut."
MessageRequester("3D-Engine Error: Installation unvollständig", out$, #MB_ICONERROR )
End
EndIf