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?