Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi DirectX9 Implementation (https://www.delphipraxis.net/113707-directx9-implementation.html)

Desmulator 13. Mai 2008 11:24


DirectX9 Implementation
 
Ja, ich muss sagen, ich bin verrückt aber naja,
ich habe mir überlegt eine weiter D3D9 implementation zu schreiben...

allerdings komme ich nicht weiter... ich habe warscheinlich mal wieder einen denkefehler...

Delphi-Quellcode:
  { IDirectX9 : DirectX9 HauptInterface }
  IDirectX9 = interface(IUnknown)
    ['{1DD9E8DA-1C77-4d40-B0CF-98FEFDFF9512}']
    ...
    { GetAdapterCount : Gibt die Anzahl der Adapter zurück }
    function GetAdapterCount() : Cardinal; stdcall;
    ...
  end;

  { DX9Create : Erstellt eine neue DirectX9 Interface }
  function DX9Create(DX9Version : Cardinal) : Pointer; stdcall;

implementation

  { DX9Create : imported from d3d9.dll , named Direct3DCreate9 }
  function DX9Create; external 'd3d9.dll' name 'Direct3DCreate9';
Soweit so gut...
Delphi-Quellcode:
var
  DX9 : IDirectX9;

  DX9 := IDirectX9(DX9Create(DX9_SDK_VERSION));
  WriteLn(DX9.GetAdapterCount); //Ich erwarte eigendlich das hier die Anzahl der Adapter ausgegeben wird
Das Programm stüzt ab und beendet sich. keine fehlermeldung nix.
Alles ist stdcall und müsste meines erachtens eigendlich laufen...

:wall:

Dezipaitor 13. Mai 2008 13:18

Re: DirectX9 Implementation
 
haste CoInitialize aufgerufen?
Und überprüfst du, ob DX9 = nil ist?

Desmulator 13. Mai 2008 15:27

Re: DirectX9 Implementation
 
Der Fehler lag darin, dass der Wert der DX9_SDK_VERSION fehlerhaft war.
Somit schlägt auch die DX9Create fehl!


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:53 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-2025 by Thomas Breitkreuz