AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia [Andorra] Kompilieren der DLL unter Delphi XE2

[Andorra] Kompilieren der DLL unter Delphi XE2

Ein Thema von yuishiro · begonnen am 15. Jun 2012 · letzter Beitrag vom 10. Okt 2012
Antwort Antwort
Benutzerbild von yuishiro
yuishiro

Registriert seit: 11. Okt 2011
5 Beiträge
 
Delphi XE2 Professional
 
#1

[Andorra] Kompilieren der DLL unter Delphi XE2

  Alt 15. Jun 2012, 15:50
Hallo,
Ich benutze das OpenGL Plugin der Andorra2D Engine unter Delphi XE2 Professional.
Wie von Autor angeraten, habe ich das DLL-Projekt für meine Version neu kompiliert, da es zu Änderungen des internen Objektformats gekommen sein könnte.
Jedoch erhalte ich mit der selbst kompilierten DLL beim Aufruf der abstrakten Methode TAd2dRenderTargetTexture.SetSize, die in der DLL implementiert ist, eine Zugriffsverletzung auf die Adresse 0. Diese Methode wird unter anderem zum Erstellen von Objekten des Typs TAdSpritePixelCollisionTester oder TAdTextureSurface benötigt.
Die mitgelieferte, in Delphi Turbo Explorer 2006 kompilierte DLL funktioniert jedoch einwandfrei.

Sind besondere Compiler-Einstellungen von Nöten?
Oder gibt es eine andere Lösung für dieses Problem?

Viele Grüße,
Yuishiro
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: [Andorra] Kompilieren der DLL unter Delphi XE2

  Alt 16. Jun 2012, 13:27
Ist das Objekt instantiiert?
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von yuishiro
yuishiro

Registriert seit: 11. Okt 2011
5 Beiträge
 
Delphi XE2 Professional
 
#3

AW: [Andorra] Kompilieren der DLL unter Delphi XE2

  Alt 16. Jun 2012, 14:42
SetSize wird hier aufgerufen:
Code:
procedure TAdRenderTargetTexture.UpdateSize;
begin
  if FAd2dTexture <> nil then
  begin
    Texture.SetSize(FWidth, FHeight, FBitDepth);
  end;
end;
Code:
function TAdRenderTargetTexture.GetTexture: TAd2dRenderTargetTexture;
begin
  result := TAd2dRenderTargetTexture(inherited Texture);
end;

//aus TAdCustomTexture:
property Texture: TAd2dTexture read FAd2DTexture write SetAd2DTexture;
Wobei der Rückgabewert von GetTexture <> nil ist, da TAdRenderTargetTexture von TAdCustomTexture abgeleitet ist und FAd2dTexture, auf das nun zugegriffen wird, vorher erstellt wurde, soweit ich das verstanden habe:
Code:
procedure TAdRenderTargetTexture.Initialize;
begin
  Finalize;

  FAd2dTexture := Parent.AdAppl.CreateRenderTargetTexture; //Diese Methode greift auch auf die DLL zu

  //Break here if the result was nil.
  if FAd2dTexture = nil then
    raise EAdInterfaceCreation(MsgSurfaceInterfaceNotAvailable);

  FAd2dTexture.Filter := FFilter;
  UpdateSize;
end;
Also sollte Texture vorher instanziert worden sein.

Viele Grüße,
Yuishiro
  Mit Zitat antworten Zitat
Benutzerbild von yuishiro
yuishiro

Registriert seit: 11. Okt 2011
5 Beiträge
 
Delphi XE2 Professional
 
#4

AW: [Andorra] Kompilieren der DLL unter Delphi XE2

  Alt 10. Okt 2012, 17:28
Lösung:

Aktuellen Header von DelphiGL.com verwenden.

(http://files.delphigl.com/new/dglOpenGL.zip)
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:54 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz