Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi [Andorra2D] - Andorra Dll (https://www.delphipraxis.net/126221-%5Bandorra2d%5D-andorra-dll.html)

Xzeer 20. Dez 2008 10:26


[Andorra2D] - Andorra Dll
 
Hallo,

Ich möchte Andorra 2D unter Delphi 2009 verwenden. Dabei stelle ich mich irgendwie ein bisschen dumm an.

Die neuste Version, habe ich jetzt mit dem CVS Tool runtergeladen. Die Andorra Units liegen im lib Verzeichnis und den Biblothekspfad habe ich ergänzt.

Jetzt habe ich ein Problem mit der AndorraDX93D.dll Datei. Beim starten meiner Anwendung bekomme ich den Fehler das die DLL Version zu alt ist und nicht verwendet werden kann.

Also muss ich die Andorra DLL selber kompilieren. Nur wie funktioniert das... :gruebel:

Wär echt super nett, wenn mir da wer helfen könnte...

igel457 20. Dez 2008 11:23

Re: [Andorra2D] - Andorra Dll
 
Schritt 1:
Besorge dir die Header die für die Grafikschnittstellen benötigt werden und binde diese in den Suchpfad von Delphi ein.
Für OpenGL liegt der Header schon in Andorras "lib"-Ordner.
Für DirectX 9 kannst du die Header hier herunterladen: http://www.clootie.ru/delphi/download_dx92.html

Schritt 2:
Öffne die Datei "src/dll/DirectX/AndorraDX93D.bdsproj" bzw. "src/dll/OpenGL/AndorraOGL.bdsproj". Kompiliere das Projekt (SHIFT + STRG + F9)

Schritt 3:
Du findest die kompilierten DLLs in Andorras "bin" Ordner.

Xzeer 20. Dez 2008 11:53

Re: [Andorra2D] - Andorra Dll
 
mhh, bei schritt 2 bekomme ich folgende fehler:

Zitat:

[DCC Warnung] AdWindowFramework.pas(164): W1058 Implizite String-Umwandlung mit potenziellem Datenverlust von 'string' zu 'ShortString'
[DCC Warnung] AdWindowFramework.pas(209): W1057 Implizite String-Umwandlung von 'AnsiString' zu 'string'
[DCC Warnung] AdWindowFramework.pas(209): W1058 Implizite String-Umwandlung mit potenziellem Datenverlust von 'string' zu 'ShortString'
[DCC Hinweis] DX3DMain.pas(416): H2443 Inline-Funktion 'D3DCOLOR_ARGB' wurde nicht expandiert, weil Unit 'DXTypes' in der USES-Liste nicht angegeben ist
[DCC Hinweis] DX3DMain.pas(553): H2443 Inline-Funktion 'D3DXVector3' wurde nicht expandiert, weil Unit 'DXTypes' in der USES-Liste nicht angegeben ist
[DCC Hinweis] DX3DMain.pas(554): H2443 Inline-Funktion 'D3DXVector3' wurde nicht expandiert, weil Unit 'DXTypes' in der USES-Liste nicht angegeben ist
[DCC Hinweis] DX3DMain.pas(555): H2443 Inline-Funktion 'D3DXVector3' wurde nicht expandiert, weil Unit 'DXTypes' in der USES-Liste nicht angegeben ist
[DCC Warnung] DX3DMain.pas(608): W1057 Implizite String-Umwandlung von 'ShortString' zu 'string'
[DCC Hinweis] DX3DMain.pas(678): H2443 Inline-Funktion 'D3DCOLOR_ARGB' wurde nicht expandiert, weil Unit 'DXTypes' in der USES-Liste nicht angegeben ist
[DCC Fehler] DX3DHLSL.pas(134): E2010 Inkompatible Typen: 'Char' und 'AnsiChar'
[DCC Fehler] DX3DHLSL.pas(135): E2010 Inkompatible Typen: 'Char' und 'AnsiChar'
[DCC Fehler] DX3DHLSL.pas(185): E2089 Ungültige Typumwandlung
[DCC Fataler Fehler] DX3DShader.pas(23): F2063 Verwendete Unit 'DX3DHLSL.pas' kann nicht compiliert werden

igel457 20. Dez 2008 14:28

Re: [Andorra2D] - Andorra Dll
 
Ups, das habe ich wohl vergessen umzuschreiben. Würde die Trial-Version von Delphi 2009 etwas länger gehen, wäre mir vermutlich auch dieser Fehler aufgefallen.

Ich habe Versucht die Fehler zu beheben, lade nochmal die neuste CVS-Version herunter und teste es.

Xzeer 21. Dez 2008 13:45

Re: [Andorra2D] - Andorra Dll
 
Liste der Anhänge anzeigen (Anzahl: 1)
hab andorra aktuallisiert und konnte die dll auch kompilieren.

Aber wenn ich diese Dll jetzt einbinden möchte, bekomme ich diesen Fehler -> siehe Bild im Anhang

Sowohl Andorra DLL, als auch die d3dx9_31.dll liegen im Programmverzeichnis...

Mein Code:

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, AdDraws, AdClasses, AdTypes;

type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
    AdDraw: TAdDraw;
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  AdDraw := TAdDraw.Create(self);
  AdDraw.DllName := 'AndorraDX93D.dll';
  if AdDraw.Initialize then
  begin
    /////
  end
  else
  begin
    showmessage(AdDraw.GetLastError);
    close;
  end;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  AdDraw.Free;
end;

end.
//EDIT: Das war mein Fehler... Ich habe die d3dx9_31.dll gegen die neuere d3dx9_33.dll ausgetauscht und jetzt funktioniert es... :thumb:


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:59 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz