ich plane momentan eine Sound-Visualisierungsengine zu schreiben. Dabei soll der Entwickler einfach eine Komponente, die das OpenGL-Grundgerüst beinhaltet, einfach bei sich raufziehen können und die Komponente kümmert sich dann um die DLL (anbinden etc.). Aber irgendwie mag OpenGL es nicht, wenn ich die Zeichenroutinen außerhalb habe. Gibt es eine Möglichkeit, dass man die OpenGL-Verarbeitung doch außerhalb macht?
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Was hat er denn für Problem? Wie äußert es sich? Willst du nur die Zeichenroutine auslagern oder auch die Initialisierung?
Aber ich denke mal das Problem dürften die Pointer von OpenGL sein. Also die werden bei der dglOpenGL dynamisch geladen und einer DLL müsstest du diese noch einmal per Hand laden oder von außen setzen. Aber bei grob geschätzt 300 Methoden dürftest du da keinen Spaß bei haben. Aber das kommt wiederrum darauf an was du vor hast. Was mich wieder zu meinen ersten Fragen bringt.
--------------------------- Benachrichtigung über Debugger-Exception --------------------------- Im Projekt Project1.exe ist eine Exception der Klasse EAccessViolation mit der Meldung 'Zugriffsverletzung bei Adresse 00000000. Lesen von Adresse 00000000' aufgetreten. --------------------------- Anhalten Fortsetzen Hilfe ---------------------------
Lager am besten alles in die DLL aus, was OpenGL betrifft, dann funzt das wunderbar. So mache ich das in einem C++ Projekt auch und das klappt einwandfrei.
Ne Init-Funktion, welche ein Handle auf das Fenster bekommt und damit "startest" dann dein OpenGL-Zeugs. Entsprechend muss natürlich auch ein Deinit her.
Oder alle Instanzen mitloggen und beim ENtladen der DLL entsprechend abfangen udn die Ressourcen freigeben.
Mal noch ne Frage zu der Fehlermeldung: hat da wer Infos/ne Seite, wo Fehlerquellen für diese sehr unpräzise Fehlermeldung stehen?
Weil bei meinem Prob(anderer Thread, das mit dem Select), kommt manchmal diesselbe Meldung.
_________________ __________
"C++ is the best language for garbage collection principally because it creates less garbage." Bjarne Stroustrup
Registriert: Di Mai 18, 2004 16:45 Beiträge: 2623 Wohnort: Berlin
Programmiersprache: Go, C/C++
Ich würde die visualisierung garnicht in der dll machen.
Gib die benötigten daten raus und lass den user über die funktionen in deinem Header, die Daten zeichnen.
Damit hast du den Vorteil, du kannst es auch für D3D oder andere zeichen libs nutzen.
_________________ "Wer die Freiheit aufgibt um Sicherheit zu gewinnen, der wird am Ende beides verlieren" Benjamin Franklin
Registriert: Sa Jan 01, 2005 17:11 Beiträge: 2068
Programmiersprache: C++
Gaukler hat geschrieben:
also 00000000 heisst eigentlich immer das er auf etwas zugreifen will, was nicht existiert. Beim rest kann ich allerdings auch nicht weiterhelfen.
Es steht doch schon alles oben:
Die dglOpenGL.pas hat alle Funktionen als Pointer, sodass man ohne Probleme für die entsprechenden Versionen nur die entsprechenden Funktionen laden kann.
Nicht unterstützte Funktionen sind somit als nil initialisiert.
Das Problem bei der DLL ist, dass die Funktionen aus der dglOpenGL.pas nicht in der DLL sondern nur im Programm initialisiert sind, sodass die Exception mit der Adresse 00000000 zutritt.
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.