Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Nach Einfügen in Projekt Fehlermeldung Inkompatible Typen (https://www.delphipraxis.net/56953-nach-einfuegen-projekt-fehlermeldung-inkompatible-typen.html)

Garfield 14. Nov 2005 08:20


Nach Einfügen in Projekt Fehlermeldung Inkompatible Typen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,

es gibt verschiedene Möglichkeiten, CD/DVD-Laufwerke aufzulisten. Dazu hatte ich Anfang des Jahres bereits diese Diskussion und mich dann für die Bass.Dll/BassCD.Dll entschieden. Angeregt durch diese Diskussion habe ich mich noch einmal damit beschäftigt und dabei ist das angehängte Projekt herausgekommen, welches für sich allein einwandfrei funktioniert.

Binde ich diese Funktion in mein Projekt ein, erhalte ich die Fehlermeldung:
Zitat:

[Fehler] SptiCD.pas(90): Inkompatible Typen: 'Array' und 'Char'
Auszug aus der SptiCD.pas, welche wie auch die anderen Units aus dem Projekt CDDBComp stammen:
Delphi-Quellcode:
function sptiReadTOC( CdRoms : TCdRoms; driveNo : integer; t : PWCDTOC ) :
  integer;
var
  hDrive : THandle;
  length : Cardinal;
  buf : array[0..31] of Char;
  retVal : integer;
  dwReturned : Cardinal;
  swb : SCSI_PASS_THROUGH_DIRECT_WITH_BUFFER;
  dwFlags : LongWord;
  text : PChar;
  DummyStr : array [0 .. 63] of char;
  dwError : Cardinal;
begin
  dwFlags := GENERIC_READ;
  retVal := 0;
  //Text := nil;
  Text := @DummyStr;  // <-- Zeile 90 mit den nun inkompatiblen Typen

  if getOsVersion >= OS_WIN2K then
    dwFlags := dwFlags or GENERIC_WRITE;
In den uses der Unit, in welcher die Laufwerke abgerufen werden, steht:
Delphi-Quellcode:
uses
  Windows, SysUtils, Forms, ExtDlgs, FileCtrl, Messages, Graphics, MMSystem,
  StdCtrls, ExtCtrls, Classes, Controls, Dialogs, Gauges, Grids, MPlayer,
  ComCtrls, Buttons, ShellApi, Menus, AspiCD,
 
  // und die Units des Projekts
Hat jemand eine Ahnung, woher die Inkompatibilität kommen könnte oder wie man es herausfinden kann?

Robert Marquardt 14. Nov 2005 08:46

Re: Nach Einfügen in Projekt Fehlermeldung Inkompatible Type
 
Das ist eine Unsauberkeit in der Source.
Korrekt ist "Text := @DummyStr[0];"

Garfield 14. Nov 2005 09:21

Re: Nach Einfügen in Projekt Fehlermeldung Inkompatible Type
 
Vielen Dank Robert. :thumb:

Nach dieser Korrektur habe ich noch vier Stellen mit der selben Fehlermeldung gefunden. Nun funktioniert mein Projekt. :cheers:


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:47 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