It seems that these functions and constants you are using are from Windows unit.
Did you tried to include it in your uses clause? 2011/4/7 Peter Williams <[email protected]> > Hi All, > > I have a legacy Delphi 7 project which works fine in D7, but it gives these > errors in Lazarus 0.9.31. > > Options changed, recompiling clean with -B > Hint: Start of reading config file /etc/fpc.cfg > Hint: End of reading config file /etc/fpc.cfg > Free Pascal Compiler version 2.4.2-0 [2010/11/11] for i386 > Copyright (c) 1993-2010 by Florian Klaempfl > Target OS: Linux for i386 > Compiling Project1.lpr > Compiling DVDregion1.pas > DVDregion1.pas(62,13) Error: Identifier not found "ZeroMemory" > DVDregion1.pas(63,21) Error: Identifier not found "GetDriveType" > DVDregion1.pas(65,23) Error: Identifier not found "DRIVE_CDROM" > DVDregion1.pas(76,28) Error: Identifier not found "DeviceIoControl" > DVDregion1.pas(115) Fatal: There were 4 errors compiling module, stopping > > > > unit DVDregion1; > > {$MODE Delphi} > > interface > > uses > LCLIntf, LCLType, LMessages, Classes, SysUtils, Forms, StdCtrls, > Controls; > > type > DVD_REGION = record > CopySystem, > RegionData, // current media region > SystemRegion, // current drive region > ResetCount: Byte; > end; > PDVD_REGION = ^DVD_REGION; > > const > IOCTL_DVD_GET_REGION = $335014; > > type > TForm1 = class(TForm) > Memo1: TMemo; > Button1: TButton; > procedure Button1Click(Sender: TObject); > private > { Private declarations } > public > { Public declarations } > end; > > var > Form1: TForm1; > > implementation > > {$R *.lfm} > > procedure TForm1.Button1Click(Sender: TObject); > const > drive_letter = 'H:'; > RegionStrings: array[0..8] of string = ( > ' 0 --- No Region Code - works in any DVD player', > ' 1 --- United States of America, Canada', > ' 2 --- Europe, France, Greece, Turkey, Egypt, Arabia, Japan and South > Africa', > ' 3 --- Korea, Thailand, Vietnam, Borneo and Indonesia', > ' 4 --- Australia, New Zealand, Mexico, the Caribbean, and South > America', > ' 5 --- India, Africa, Russia and former USSR countries', > ' 6 --- Peoples Republic of China', > ' 7 --- Unused', > ' 8 --- Airlines and Cruise Ships'); > var > handle: THandle; > rv, Region2Check: Integer; > region: DVD_REGION; > dw: DWORD; > status: Boolean; > Mask: byte; > begin > Memo1.Clear; > ZeroMemory(@region, SizeOf(DVD_REGION)); > rv := GetDriveType(drive_letter); > > if rv = DRIVE_CDROM then > Memo1.Lines.Add('Drive is a CD/DVD drive'); > > handle := FileCreate('\\.\' + drive_letter); { *Converted from > CreateFile* } > > if handle = INVALID_HANDLE_VALUE then > begin > Memo1.Lines.Add('Cannot open the drive'); > Exit; > end; > > status := DeviceIoControl( > handle, // handle to device > IOCTL_DVD_GET_REGION, // dwIoControlCode > nil, // lpInBuffer > 0, // nInBufferSize > @region, // output buffer > SizeOf(DVD_REGION), // buffer size > dw, // number of bytes returned > nil); > > if not status then > begin > FileClose(handle); { *Converted from CloseHandle* } > Memo1.Lines.Add('DevIoControl Failed'); > Exit; > end; > > Memo1.Lines.Add('The Region and Code for this DVD :'); > Memo1.Lines.Add(''); > Memo1.Lines.Add('Code - Region'); > > if region.RegionData and $3F = 0 then > Memo1.Lines.Add(RegionStrings[0]) > else > begin > Mask := 1; > for Region2Check := 1 to 8 do > begin > if region.RegionData and Mask = 0 then > Memo1.Lines.Add(RegionStrings[Region2Check]); > Mask := Mask shl 1; > end; > end; > > FileClose(handle); { *Converted from CloseHandle* } > end; > > end. > > Best Regards, > Peter E Williams > > > > -- > _______________________________________________ > Lazarus mailing list > [email protected] > http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus > > -- Daniel "Let us change our traditional attitude to the construction of programs. Instead of imagining that our main task is to instruct a computer what to do, let us concentrate rather on explaining to human beings what we want a computer to do." (Donald Knuth) "Yes, technogeeks can be funny, even if only to each other." ( http://www.boogieonline.com/revolution/science/humor/)" "Man is driven to create; I know I really love to create things. And while I'm not good at painting, drawing, or music, I can write software." (Yukihiro Matsumoto, a.k.a. ``Matz'')
-- _______________________________________________ Lazarus mailing list [email protected] http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
