Наткнулся на проблему. В коде объявлена константа:
- Код: Выделить всё
 uses
 ...., Windows, ...
 const
 GENERIC_ACCESS = GENERIC_READ or GENERIC_WRITE or GENERIC_EXECUTE or GENERIC_ALL;
 ...
Компилятор выдаёт ошибку на "GENERIC_EXECUTE": unit1.pas(11,68) Error: Identifier not found "GENERIC_EXECUTE"
Ну это я понимаю, т.к. в файле "$(LazarusDir)\fpc\2.6.1\source\rtl\win\wininc\defines.inc" нет такого определения. Я поискал и нашел в другом файле: "$(LazarusDir)\fpc\2.6.1\source\rtl\wince\wininc\defines.inc".
Решил прописать в "$(LazarusDir)\fpc\2.6.1\source\rtl\win\wininc\defines.inc":
- Код: Выделить всё
- { CreateFile, GetFileAttributes, SetFileAttributes }
 GENERIC_READ = $80000000;
 GENERIC_WRITE = $40000000;
 GENERIC_EXECUTE = $20000000; // <- добавил
В лазаре при наведении на GENERIC_EXECUTE стала появляться всплывающая подсказка на его значение и файл. Но при компиляции всё равно та же ошибка.
Пример:
- Код: Выделить всё
- unit Unit1;
 {$mode objfpc}{$H+}
 interface
 uses
 Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, Windows;
 const
 GENERIC_ACCESS = GENERIC_READ or GENERIC_WRITE or GENERIC_EXECUTE or GENERIC_ALL;
 type
 TForm1 = class(TForm)
 private
 { private declarations }
 public
 { public declarations }
 end;
 var
 Form1: TForm1;
 implementation
 {$R *.lfm}
 end.
Подскажите, что и как правильно надо делать.
Lazarus-1.1-39718-fpc-2.6.1-20130102-win32.exe



