Error : The 3D Engine can't be initialized

Anfängerfragen zum Programmieren mit PureBasic.
Hilli
Beiträge: 17
Registriert: 07.10.2009 15:07

Error : The 3D Engine can't be initialized

Beitrag von Hilli »

Hallo zusammen,
ich habe ein neues Notebook mit Win7-x64 und möchte jetzt natürlich auch PB460_x64 benutzen.
Soweit Alles gut, nur beim Versuch eine 3D Anwendung zu starten bekomme ich einen Error.
Siehe Betreff.
Laut "dxdiag" ist DirectX11 auf dem Notebook installiert.
Mit einer PB460_x86 Installation auf dem neuen Notebook habe ich diese Fehlermeldung nicht.
Im Verzeichnis "\SubSystems" ist bei beiden Installationen jeweils das Verzeichnis "DirectX7" und "OpenGL".

Wo bitte liegt das Problem, wie kann es gelöst werden.
Für eine hilfreiche Antwort schon mal vielen Dank im Voraus.
Benutzeravatar
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: Error : The 3D Engine can't be initialized

Beitrag von ts-soft »

Schön das Du DirectX11 hast, aber das ist nur für sehr aktuelle Spiele.
DirectX9 gibt es hier: http://www.microsoft.com/downloads/de-d ... 6652cd92a3

Keine Angst, die beiden DirectXen beißen sich nicht :wink:
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.
Bild
Hilli
Beiträge: 17
Registriert: 07.10.2009 15:07

Re: Error : The 3D Engine can't be initialized

Beitrag von Hilli »

Hi, danke erst einmal für Deine super schnelle Antort.

Habe Deinen Vorschlag ausgeführt, also DirectX9 installiert, und auch wie früher notwendig,
vorsichtshalber einen Neustart durchgeführt.
Leider hat sich an meiner Situation nichts geändert. Es kommt immer noch der gleiche Fehler hoch.
Frage, wodran liegt es?

[u]Laut Hilfe zu dem Befehl "InitEngine3D()" :[/u]
"Dieser Befehl versucht, die 'Engine3D.dll' und DirectX 7 zu laden. Wenn dies fehlschlägt,
liegt dies möglicherweise daran, dass die DLL oder DirectX 7+ nicht gefunden wurde."

Die DLL ist im Compilers Verzeichnis vorhanden, wurde so installiert.
Da es kein Problem mit einer (x86) Installation unter Win7_x64 gibt,
kann und konnte es doch eigentlich nicht an der fehlenden DX9 Installation liegen,
Nach Aussage von Microsoft sind bei der Installation von DX11 alle downgrads bis DX7 mit vorhanden,
was man auch anhand der DLL's in Windows Verzeichnis sehen kann.

mfg Udo
Benutzeravatar
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: Error : The 3D Engine can't be initialized

Beitrag von ts-soft »

Hilli hat geschrieben:Nach Aussage von Microsoft sind bei der Installation von DX11 alle downgrads bis DX7 mit vorhanden,
was man auch anhand der DLL's in Windows Verzeichnis sehen kann.
Egal was MS dort aussagt, es stimmt definitiv nicht! Dann würde MS den obigen Download, der ja sinnlos wäre,
auch gar nicht für Windows 7 anbieten :mrgreen:

Ansonsten denke ich mal, Du solltest die "Engine3d.dll" ins Source-Verzeichnis kopieren.
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.
Bild
Hilli
Beiträge: 17
Registriert: 07.10.2009 15:07

Re: Error : The 3D Engine can't be initialized

Beitrag von Hilli »

Bin immer wieder begeistert, tolles Forum.

Habe die "Engine3d.dll" ins Source-Verzeichnis der Examples kopiert.
Leider keine Besserung, Fehler bleibt.

Also noch mal von vorn, habe PB460_x64 neu installiert, keine Änderung,
immer noch Fehler.
Der einzige Unterschied den ich finden kann ist:
Bei x86 ist die Dateigröße von Engine3D.dll = 2.317KB,
bei X64 ist die Dateigröße von Engine3D.dll = 13.670KB
Wie schon gesagt bei x86 läuft alles super.

Ich brauche 3D nicht wirklich, aber trotzdem müsste es doch funktionieren.
Hat Du noch eine Idee warum es nicht funktioniert?
Benutzeravatar
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: Error : The 3D Engine can't be initialized

Beitrag von ts-soft »

Hilli hat geschrieben:Ich brauche 3D nicht wirklich, aber trotzdem müsste es doch funktionieren.
Hat Du noch eine Idee warum es nicht funktioniert?
Bei mir funktionierts, ähnliche Ausstattung.

Die DLL größen bei Dir stimmen auch. Evtl im Source ein SubSystem eingetragen?
Keine Rechte im Examples-Ordner zu schreiben? (Das würde aber eher einen Link-Error hervorrufen).

Mehr fällt mir jetzt auch nicht ein. Da die 4.60 leider sehr viele Fehler enthält, würde ich an
Deiner Stelle eher zur 4.61 Beta 2 greifen.

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.
Bild
Hilli
Beiträge: 17
Registriert: 07.10.2009 15:07

Re: Error : The 3D Engine can't be initialized

Beitrag von Hilli »

An den Berechtigungen kann es nicht liegen, habe ich als Admin auch ausprobiert.
Werde bei Gelegenheit die Beta mal ausprobieren.
Bis dahin erst mal recht herzlichen Dank für Deine Bemühungen.
Wird sich schon noch was ergeben, vielleicht erledigt es sich von selbst.
Gruß Udo
Benutzeravatar
PMV
Beiträge: 2765
Registriert: 29.08.2004 13:59
Wohnort: Baden-Württemberg

Re: Error : The 3D Engine can't be initialized

Beitrag von PMV »

Ogre3D läuft mit DX9.0c ... sollte die Hilfe was anderes sagen ist
das veraltet und sollte gemeldet werden zum verbessern.

Bis einschließlich DX9.0c ist dieser voll Abwärtskompatibel ... bis auf
kleinere Ausnahmen soweit ich gelesen hab. Doch hier hat MS einen
Bruch gemacht und seit DX10 muss DX9.0c extra installiert werden.

Zur Problembehebung:
Schau mal in dem Ordner, in dem sich die compilierte EXE befindet nach
ner OGRE3D.log. Da sollte drinn stehen was schief gelaufen ist. Gibs die
nicht, könnte es trotzdem an nicht kompatibler Hardware liegen. Kann
das ausgeschlossen werden, riecht es nach einem Bug in OGRE oder PB.

MFG PMV
alte Projekte:
TSE, CWL, Chatsystem, GameMaker, AI-Game DLL, Fileparser, usw. -.-
Hilli
Beiträge: 17
Registriert: 07.10.2009 15:07

Re: Error : The 3D Engine can't be initialized

Beitrag von Hilli »

Hi, Problem besteht weiterhin nur bei der _x64 Installation von PB.
Eine OGRE3D.Log Datei wird nicht erzeugt.

Da ich kein Problem mit einer _X86 Installation auf dem selben Rechner habe,
kann es wohl nicht an der Hardware liegen.

DirectX9 habe ich auch noch mal extra nachinstalliert.

Werde jetzt mal die 4.61 Final Version ausprobieren, hatte mit der Beta4 auch Probleme.
Unteranderem war die Darstellung der Icons in der IDE nicht richtig.

Mal sehen was noch kommt.

Noch schönen Pfingstmontag
mfG Udo

Habe soeben beide Final Versionen 4.61_x86 und 4.61_x64 installiert.
Weiterhin ist das Problem nur bei der _x64 Version.
Eine OGRE.log wird NUR für _X86 erzeugt.

Fazit, Stand der Dinge wie gehabt, keine Änderung !!!!!
Benutzeravatar
PMV
Beiträge: 2765
Registriert: 29.08.2004 13:59
Wohnort: Baden-Württemberg

Re: Error : The 3D Engine can't be initialized

Beitrag von PMV »

Nur noch mal um alles zusammen zu fassen:

1. die x64 Version ist eine saubere Neuinstallation
2. unter den Compileroptionen ist kein Subsystem eingetragen
3. Es wird die richtige DLL geladen (Engine3D.dll)
- in Windows System32-Ordner überprüfen ob da eine ist (wenn ja löschen!)
- überprüfen ob weitere Pfade in Wiundows eingestellt sind und diese auch überprüfen
- die benötigte Engine3D.dll aus PureBasic\Compilers\ in das Verzeichnis kopieren, wo die erstellte EXE ist
- in der EXE sicherstellen, das das Arbeitsverzeichnis auch das aktuelle ist

Code: Alles auswählen

SetCurrentDirectory(GetPathPart(ProgramFilename())) ;so oder so ähnlich wars ;-)
- in de Compileroptionen EXE im Quellcodeverzeichnis erstellen auswählen
- EXE compilieren und ausführen

Wenn alles ausgeschlossen wurde, ist ein Bug-Report im eng. Forum fällig. :|

MFG PMV
alte Projekte:
TSE, CWL, Chatsystem, GameMaker, AI-Game DLL, Fileparser, usw. -.-
Antworten