Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.09.10;
Скачать: CL | DM;

Вниз

Unsafe code, как с этим бороться?   Найти похожие ветки 

 
boalse ©   (2006-08-15 06:42) [0]

Пытаюсь скомпиллировать не мой модуль, вылазят следующие ошибки:

Build
 [Warning] DGLUT.pas(344): Unsafe code "@ operator"
 [Warning] DGLUT.pas(344): Unsafe code "@ operator"
 [Warning] DGLUT.pas(344): Unsafe code "@ operator"
 [Warning] DGLUT.pas(344): Unsafe code "@ operator"
 [Warning] DGLUT.pas(344): Unsafe code "@ operator"
 [Fatal Error] DGLUT.pas(350): Line too long (more than 1023 characters)

Как я понимаю, непосредственно с кодом эти ошибки не связаны, поэтому код не привожу.


 
PZ   (2006-08-15 08:29) [1]

Это значит, что в Kilix эти операторы отсутствуют. Если модуль используется только в Delphi - можно не обращать внимания.


 
PZ   (2006-08-15 08:30) [2]

Я имел в виду Unsafe code


 
sniknik ©   (2006-08-15 08:42) [3]

в опциях проекта в "compiler messages" отключи три последних "варнинга".  

а ошибка
> Fatal Error] DGLUT.pas(350): Line too long (more than 1023 characters)
это у тебя в редакторе дейфей строку разбить надо на короткие (< 256), компилятор длинные не берет. (видать форматирование кода сбилось)


 
boalse ©   (2006-08-15 08:48) [4]

sniknik ©   (15.08.06 08:42) [3]
В том-то и дело, что визуально строки длинной меньше 256.
Однако, открыв файл в блокноте, обнаружил, что  в качестве разделителей строк стоят нули, хотя обычно было 13. Неужто в этом дело? Попробую заменить эти нули.


 
Anatoly Podgoretsky ©   (2006-08-15 08:53) [5]

Никаких нулей и #13 быть не должно, это же виндоус, а не макинтош.
А код и правда очень опасный.


 
evvcom ©   (2006-08-15 09:24) [6]

> Однако, открыв файл в блокноте, обнаружил, что  в качестве
> разделителей строк стоят нули, хотя обычно было 13

Как это ты в блокноте увидел нули и 13? Поясни.


 
StriderMan ©   (2006-08-15 09:27) [7]


> А код и правда очень опасный

а что такого опасного?


 
Ketmar ©   (2006-08-15 09:39) [8]

> [4] boalse ©   (15.08.06 08:48)
не нули. а #10. открыть в том де FAR"е, записать при помощи Shift+F2, сменив разделители на CR/LF. будет сатисфакшн.


 
boalse ©   (2006-08-15 10:26) [9]

Всё, нашел косяк. Написал следующий код, поиздевался над файлом разными его вариациями, и всё заработало. Не понял, правда, что конкредно было причиной :)

procedure TForm1.Button1Click(Sender: TObject);
var
 SFile: HFILE;
 SHandle: THandle;
 Atr:TOFStruct;
 FileView: Pointer;
 PData: PByteArray;
 FS,I: cardinal;
 AA: TByHandleFileInformation;
 ff: Boolean;
begin
 if OpenDialog1.Execute then
   begin
     SFile := OpenFile(PChar(OpenDialog1.FileName), Atr, OF_READWRITE );
     if (SFile<>0)  then
       begin
             if GetFileInformationByHandle(SFile,AA) then             begin
             FS:=AA.nFileSizeLow;
             SHandle:=CreateFileMapping(SFile, nil, PAGE_READWRITE, 0,FS, "");
             if SFile<>0 then
               begin
                 FileView := MapViewOfFile(SHandle, FILE_MAP_ALL_ACCESS, 0, 0,FS);
                 if FileView <>nil then
                   begin
                     PData:=PByteArray(FileView);
                     ff:=false;
                     For I:=0 to FS-1 do
                       begin
                         if ff then
                           begin
                             if (PData[I]=$D)  then
                               PData[I]:=$A else
                               PData[I-1]:=ord(" ");
                           end;
                             
                         ff:= PData[I]=$D;
                       end;
                     Memo1.Lines.BeginUpdate;
                     try
                       Memo1.Clear;
                       For I:=0 to FS-1 do
                         Memo1.Text:=Memo1.Text+Chr(PData[I]);
                     finally
                       Memo1.Lines.EndUpdate;
                     end;

                     UnmapViewOfFile(FileView);
                   end;
                 CloseHandle(SHandle);
               end;
           end;
       end;
     FileClose(SFile);
   end;
end;



Страницы: 1 вся ветка

Текущий архив: 2006.09.10;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.029 c
3-1151498384
Serjio77
2006-06-28 16:39
2006.09.10
Выгрузка из файла xml для чайника...


3-1151943933
SergP
2006-07-03 20:25
2006.09.10
Oracle --> dbf. Как сделать попроще?


2-1155897270
Voit
2006-08-18 14:34
2006.09.10
как скопировать выделенную строчку из DBgrid в листбокс!!! help!!


2-1155815298
fast2
2006-08-17 15:48
2006.09.10
Что неправильно в условии:


2-1155977548
911911
2006-08-19 12:52
2006.09.10
Прорисовка