Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2006.09.10;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.039 c
1-1154089607
Peak
2006-07-28 16:26
2006.09.10
Собственный Инспектор объектов.


2-1155756022
ronyn
2006-08-16 23:20
2006.09.10
В результате чего возникают ошибки типа хххххххх уууууу?


1-1153814246
gear
2006-07-25 11:57
2006.09.10
Динамическое создание TFrame и доступ к определёному объекту...


2-1156248554
IceBeerg
2006-08-22 16:09
2006.09.10
Получение снимка клиентской части окна чужого приложения


1-1154168715
Percent
2006-07-29 14:25
2006.09.10
TWebBrowser, IHTMLDocument и утечка памяти





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский