Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Fr Jul 18, 2025 00:42

Foren-Übersicht » Programmierung » OpenGL
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 17 Beiträge ]  Gehe zu Seite 1, 2  Nächste
Autor Nachricht
 Betreff des Beitrags: Startprobleme auf anderem Rechner?
BeitragVerfasst: Do Okt 28, 2010 08:52 
Offline
DGL Member

Registriert: Mi Okt 27, 2010 12:18
Beiträge: 2
Hallo Leute,

Ich lerne seit 2 Tagen OpenGL und habe jetzt zu 90% mein erstes 3D pingpong mit Texturen und kleinen effekten fertiggestellt..

Zu meinem Bedauern musste ich feststellen, dass auf dem Rechner eines bekannten zuerst ein Fehler erschien, weil eine DLL fehlte.. es handelte sich wohl um die SDL_image.dll o.ä..

Diese habe ich ihm anschliessend mitgeliefert (aus meinem Verzeichniss System32) und er hat sie sowohl im Programm Ordner als auch im System32 Ordner kopiert. Der DLL Fehler blieb anschliessend weg, dafür erhält er nun eine access violation oder ähnliches..

Was könnt ihr dazu sagen? ist allgemein dazu etwas bekannt? Er hat eine Gute Grafikkarte und wohl auch die neuesten Treiber für diese, weil er spielt auch sonst alles das, was aktuell auf dem Markt ist.

Ich habe Windows 7, bei mir funktioniert es tadellos, er hingegen Windows XP.


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Do Okt 28, 2010 19:26 
Offline
DGL Member

Registriert: Do Jan 07, 2010 21:58
Beiträge: 240
hm also ne acces violation oder ähnliches sagt nun wirklich nicht viel aus

wenigstens en srenn wäre gut, oder du linkst mal dein programm im ganzen, aber so ausm ff kann dir denke ich keiner helfen


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Do Okt 28, 2010 19:47 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 29, 2005 12:28
Beiträge: 2249
Wohnort: Düsseldorf
Programmiersprache: C++, C#, Java
Wenn schon die SDL_image.dll fehlte, ist es einen Versuch wert mal SDL zu installieren. (Wobei ich als Linux-User nicht weiß wie das unter Windows läuft)

Zitat:
wenigstens en srenn wäre gut,

Ich glaube das soll "wenigstens ein Screenshot ..." heißen ;)

_________________
Yeah! :mrgreen:


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Do Okt 28, 2010 20:06 
Offline
DGL Member

Registriert: Do Jan 07, 2010 21:58
Beiträge: 240
na da hab ich mich ja mal ordentlichst vertippt^^ ja soll screen heißen :D


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Fr Okt 29, 2010 19:46 
Offline
DGL Member

Registriert: Mi Okt 27, 2010 12:18
Beiträge: 2
http://www.xup.in/dl,96568874/Project1.exe/

Aber das ist doch keine Lösung.. wenn jeder der meine spiele spielen möchte, sich das SDL installieren muss.


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Fr Okt 29, 2010 20:36 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 29, 2005 12:28
Beiträge: 2249
Wohnort: Düsseldorf
Programmiersprache: C++, C#, Java
Zitat:
Aber das ist doch keine Lösung.. wenn jeder der meine spiele spielen möchte, sich das SDL installieren muss.

Tja, das ist halt der Nachteil von Windows gegenüber Betriebsystemen mit Paketmanager. Also entweder:
1. Kein SDL benutzen sondern Windows selbst um ein OpenGL-Fenster zu öffnen und Texturen zu laden.
2. SDL mit deiner Anwendung mitliefern. Hast du mal versucht sämtliche DLLs die zu SDL gehören (die du benutzt) in der korrekten Version mit in den Ordner deiner Anwendung zu packen? Bisher hast du ja nur die SDL_image.dll mitgeliefert, oder? Ggf, hat er SDL installiert aber in einer falschen Version.
3. Linux installieren :P (ok, nicht ernst gemeint ;) )

P.S. Mit einer EXE kann ich als Linux-User nicht viel anfangen ;)

_________________
Yeah! :mrgreen:


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Fr Okt 29, 2010 23:37 
Offline
DGL Member
Benutzeravatar

Registriert: Di Sep 20, 2005 13:18
Beiträge: 1054
Wohnort: Dresden
Programmiersprache: C, C++, Pascal, OPL
Die SDL_Image.dll braucht noch einige andere Dateien:
jpeg.dll
libpng*.dll
libtiff*.dll
smpeg.dll
zlib1.dll
(* stehen für beliebe Zeichenketten/Nummern, z.B. libpng12-0.dll)
Ich weiß nicht wie intelligent SDL_Image ist und Dinge, die es nicht braucht, einfach nicht läd. Kaum jemand nutzt z.B. noch tiff...

Bei mir (unter Linux mit wine) kann ich dein Programm bei Beilage der DLLs übrig starten bekomme aber auch eine Access Violation, die ich aber nicht auf die fehlenden DLLs sondern auf Programmierfehler deinerseits schieben, denn für gewöhnlich gibt es keine Access Violations bei fehlenden Libs sondern direkt eine Meldung was fehlt - vor allem unter Windows.

Die Access Violation sagt, du würdest von Addresse 0…014 lesen. Das klingt sehr nach einem nicht bzw. falsch initialisierten Pointer und/oder Array.

LG Ziz

_________________
Denn wer nur schweigt, weil er Konflikte scheut, der macht Sachen, die er hinterher bereut.
Und das ist verkehrt, denn es ist nicht so schwer, jeden Tag zu tun als ob's der letzte wär’.
Und du schaust mich an und fragst ob ich das kann.
Und ich denk, ich werd' mich ändern irgendwann.

_________________Farin Urlaub - Bewegungslos


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Sa Okt 30, 2010 11:45 
Offline
DGL Member

Registriert: Do Jan 07, 2010 21:58
Beiträge: 240
also ich persönlich nutze auch kein sdl und komm damit gut klar, als der sinn dafon erklärd wurde war ich wohl nicht anwesend
nein ernsthaft bis auf das der code (wie ich finde) unleserlich wird und das eventuell vor dieben schützt XD sehe ich keinen sinnvollen grund das zu nutzen

einfach normal opengl initialisieren wie es im tut beschrieben wird dann kannste auch einfach ne exe wegschicken ohne das irgendwer irgendwelche .dll´s brauch

€kommas gesetzt und fehler rausgenommen XD

lg


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Sa Okt 30, 2010 11:56 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 29, 2005 12:28
Beiträge: 2249
Wohnort: Düsseldorf
Programmiersprache: C++, C#, Java
Zitat:
als der sinn dafon erklärd wurde war ich wohl nicht anwesend

Der Sinn von SDL ist unter anderem die Platformunabhängigkeit. D.h. eine SDL Anwendung kannst du mehr oder weniger unverändert auch unter Linux oder MacOS compilieren und laufen lassen. Gleichzeitig brauchst du aber nicht so ein gigantisches Framework wie z.B. Qt einbinden, wenn du eigentlich nur ein OpenGL-Fenster haben willst und Maus/Keyboard abfragen.
Die Schnittstelle ist so häßlich, weil SDL in C geschrieben wurde, also nicht objektorientiert.

_________________
Yeah! :mrgreen:


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Sa Okt 30, 2010 12:37 
Offline
DGL Member
Benutzeravatar

Registriert: Di Sep 20, 2005 13:18
Beiträge: 1054
Wohnort: Dresden
Programmiersprache: C, C++, Pascal, OPL
Dropye hat geschrieben:
€kommas gesetzt und fehler rausgenommen XD

Verzeih, aber davon merkt man nichts.

Die Vorteile von SDL:
  • Einfach. Statt massig Codezeilen für die OpenGL Initialisierung plus mehrfachen Aufwand bei Plattformunabhängigkeit nur wenige einfach und allgemein gehaltene Instruktionen bis zum OpenGL Context. Und nebenbei bekommt man mit nur ein paar Zeilen mehr noch Netzwerk, Sound, Threading, etc.
  • Plattformunabhängig
  • Schnell. Es ist ja "nur" ein Layer und kein Framework oder gar eine Engine. Du merkst Geschwindigkeitstechnisch von SDL nichts.
  • Als DLL austauschbar. Wenn SDL einen Bug hat und es eine neue Version gibt, neue DLL dazuhauen und freuen.

Das Mitführen der DLLs sollte eigentlich nicht der Beinbruch sein. Ein OpenGL-Programm besteht meist eh aus massig verschiedenen Dateien wie Texturen, Modelle, Level, etc.

_________________
Denn wer nur schweigt, weil er Konflikte scheut, der macht Sachen, die er hinterher bereut.
Und das ist verkehrt, denn es ist nicht so schwer, jeden Tag zu tun als ob's der letzte wär’.
Und du schaust mich an und fragst ob ich das kann.
Und ich denk, ich werd' mich ändern irgendwann.

_________________Farin Urlaub - Bewegungslos


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Sa Okt 30, 2010 14:19 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Coolcat hat geschrieben:
Tja, das ist halt der Nachteil von Windows gegenüber Betriebsystemen mit Paketmanager.
Ich finds erstaunlich/enttäuschend wie oft bashing in verschiedenen Kreisen als generelles Ausdrucksmittel gebraucht wird! Wenn man unter Linux eine einfache Exe kopiert bringt einem der Paketmanager überhaupt nichts. Dazu müsste auch schon ein entsprechendes Paket erstellen. Und wenn man unter windows ein Paket/Installer macht hat man die DLLs wohl auch direkt dabei.

Ziz hat geschrieben:
Als DLL austauschbar. Wenn SDL einen Bug hat und es eine neue Version gibt, neue DLL dazuhauen und freuen.
Falls es denn eine neue Version geben sollte. Haben die denn mittlerweile den Resizebug behoben? Wenn nicht macht das eine größenveränderbare Fensteranwendung praktisch nahezu unmöglich.


Ziz: Als DLLs braucht man gar nicht so viele. In einem Beispiel mit SDL, SDL_image und SDL_ttf benögige ich nur die sdl.dll, sdl_image.dll, sdl_ttf.dll, zlib.dll, libfreetype-6.dll. Die letzten beiden denke ich werden durch SDL_ttf benötigt.

KzumO: SDL ist dann durchaus nützlich, wenn man plattformübergreifende Anwendungen schreiben will. Also Spiele. Wenn du also keine plattformübergreifende Anwendungen schreiben willst (ja so etwas soll es wirklich geben), dann kann man auch getrost auf die Initialisierung in der dglOpenGL und direkt auf Delphi spezifische Dinge zurückgreifen. Dann benötigt man keine externen DLLs etc. Und was Schlimmes ist da auch nicht dabei.

Was die Zugriffsverletzung angeht. Die kann unterschiedliche Gründe haben. Entweder irgendso etwas was Ziz gemeint hat oder aber du solltest mal schauen was für OpenGL Funktionen du benutzt. Nicht alle Funktionen/OpenGL Erweiterung sind auf allen Systemen verfügbar. Wenn dein Bekannter ein etwas älteres System hast und du Shader etc benutzt, dann kann es zu Problemen kommen. Und Copy und Paste wird immer wieder gern gemacht. Entspechend kann hier niemand mit "da ist eine Zugriffsverletzung" etwas anfangen. Da fehlen noch einige Infos. Wenn nicht sogar der Quellcode.


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Sa Okt 30, 2010 16:06 
Offline
DGL Member
Benutzeravatar

Registriert: Di Sep 20, 2005 13:18
Beiträge: 1054
Wohnort: Dresden
Programmiersprache: C, C++, Pascal, OPL
Lossy eX hat geschrieben:
Ziz hat geschrieben:
Als DLL austauschbar. Wenn SDL einen Bug hat und es eine neue Version gibt, neue DLL dazuhauen und freuen.
Falls es denn eine neue Version geben sollte. Haben die denn mittlerweile den Resizebug behoben? Wenn nicht macht das eine größenveränderbare Fensteranwendung praktisch nahezu unmöglich.

Bei OpenParty klappt das einwandfrei, gibt einen einfachen Workaround. Unter Windows musst du das Surface neu erstellen, unter Linux nicht. Nimmt der Sache zwar leider etwas "write once, compile everywhere"-Feeling, aber es geht.
Zitat:
Ziz: Als DLLs braucht man gar nicht so viele. In einem Beispiel mit SDL, SDL_image und SDL_ttf benögige ich nur die sdl.dll, sdl_image.dll, sdl_ttf.dll, zlib.dll, libfreetype-6.dll. Die letzten beiden denke ich werden durch SDL_ttf benötigt.

Dann hau ich die libtiff mal raus, danke für den Hinweis. ^^

_________________
Denn wer nur schweigt, weil er Konflikte scheut, der macht Sachen, die er hinterher bereut.
Und das ist verkehrt, denn es ist nicht so schwer, jeden Tag zu tun als ob's der letzte wär’.
Und du schaust mich an und fragst ob ich das kann.
Und ich denk, ich werd' mich ändern irgendwann.

_________________Farin Urlaub - Bewegungslos


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Sa Okt 30, 2010 18:00 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Ziz hat geschrieben:
Bei OpenParty klappt das einwandfrei, gibt einen einfachen Workaround. Unter Windows musst du das Surface neu erstellen, unter Linux nicht. Nimmt der Sache zwar leider etwas "write once, compile everywhere"-Feeling, aber es geht.
Also klappt es immer noch nicht. ;) Sofern du SDL_setvideomode (oder so) ,mit surface neu erstellen, meinst. Der "Workaround" ist mir bekannt. Nur blöd, dass man dann auch alle OpenGL Objekte neu erstellen muss.


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Sa Okt 30, 2010 18:54 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Ich dächte es gab mal ne News bei uns über SDL, dass die genau das in nem Release gefixt hätten? :?:

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: So Okt 31, 2010 00:14 
Offline
DGL Member
Benutzeravatar

Registriert: Di Sep 20, 2005 13:18
Beiträge: 1054
Wohnort: Dresden
Programmiersprache: C, C++, Pascal, OPL
Lossy eX hat geschrieben:
Ziz hat geschrieben:
Bei OpenParty klappt das einwandfrei, gibt einen einfachen Workaround. Unter Windows musst du das Surface neu erstellen, unter Linux nicht. Nimmt der Sache zwar leider etwas "write once, compile everywhere"-Feeling, aber es geht.
Also klappt es immer noch nicht. ;) Sofern du SDL_setvideomode (oder so) ,mit surface neu erstellen, meinst. Der "Workaround" ist mir bekannt. Nur blöd, dass man dann auch alle OpenGL Objekte neu erstellen muss.

Eben nicht.
Unter Windows bleibt alles erhalten und unter Linux muss man diesen Schritt nicht gehen. Zur Not schau in meinen super dokumentierten (*ähem*) Quelltext, da ist der genaue Code in der zizwindow.c.

_________________
Denn wer nur schweigt, weil er Konflikte scheut, der macht Sachen, die er hinterher bereut.
Und das ist verkehrt, denn es ist nicht so schwer, jeden Tag zu tun als ob's der letzte wär’.
Und du schaust mich an und fragst ob ich das kann.
Und ich denk, ich werd' mich ändern irgendwann.

_________________Farin Urlaub - Bewegungslos


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 17 Beiträge ]  Gehe zu Seite 1, 2  Nächste
Foren-Übersicht » Programmierung » OpenGL


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 3 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
[ Time : 0.009s | 14 Queries | GZIP : On ]