Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi PC auf Vista Kompatibilität testen (Pixel Shader 2.0) (https://www.delphipraxis.net/84893-pc-auf-vista-kompatibilitaet-testen-pixel-shader-2-0-a.html)

JasonDX 24. Jan 2007 09:49

Re: PC auf Vista Kompatibilität testen (Pixel Shader 2.0)
 
Zitat:

Zitat von Alex_kfm
Das mit dem DirectX 9 ist klar. Ich werde mal zusehen, dass ich vorher abfrage, ob die richtige DirectX Version überhaupt installiert ist. Weiss jemand zufällig auf die Schnelle, wie man das am sinnvollsten macht? Ich könnte ja auf das Vorhandensein der d3dx9.dll prüfen, doch das scheint mir eine wenig saubere Methode zu sein.

Das waere auch mein erster gedanke gewesen. Man kann aber auch in der Registry nachgucken. Aaber: Nachdem du sowieso nicht direkt auf die Direct3DCreate9-Funktion aus der d3d9.dll verweisen kannst, wuerde es Sinn machen, einfach nur auf das Vorhandensein der dll zu achten, weil man sie dynamisch laden muss:
Delphi-Quellcode:
function CreateD3D(): IDirect3D9;
type
  TCreateD3D = function(DWORD): IDirect3D9;
var
  Creation: TCreateD3D;
  D3D9Dll: HMODULE;
begin
  result := nil; //Wenn Direct3D9 nicht da is, wird nil zurueckgegeben
  D3D9Dll := LoadLibrary('d3d9.dll');
  if (D3D9Dll = 0) then
    exit;
  Creation := TCreateD3D(GetProcAddress(D3D9Dll, 'Direct3DCreate9');
  if (Creation = nil) then
    exit;
  result := Creation(D3D_SDK_VERSION);
end;
Du musst aber acht geben: Du darfst nicht mehr einfach die Direct3D-Unit einbinden, dort wird naemlich statisch auf die Funktionen verlinkt. Du musst stattdessen die Deklaration des IDirect3D9-Interfaces mitsamt den benoetigten Typen rauskopieren und so dann verwenden.

@RainerO: Der Code ist etwas suboptimal ;) Er erstellt extra fuer die Pruefung ein Fenster und ein Device, dabei ist das nicht noetig, weil auch das Direct3D9-Interface die benoetigten Funktionen mitbringt ;)

greetz
Mike

Alex_kfm 26. Jan 2007 12:37

Re: PC auf Vista Kompatibilität testen (Pixel Shader 2.0)
 
Hallo JasonDX,

das geht dann wohl doch über meine Fähigkeiten als Newbee hinaus. Ich hab zwar mal deine gepostete Funktion eingebaut und auch das Interface kopiert, doch dann war ich mit meinem Latein am Ende. ;-)

Das Auslesen funktioniert aber prima und das war es ja, worauf es mir ankam.

Noch einmal: Vielen Dank für eure Hilfe.

Gruß,
Alex


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:06 Uhr.
Seite 2 von 2     12   

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