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

Вниз

Symbol FileGetAttr is specific to a platform   Найти похожие ветки 

 
abhtr   (2008-01-28 10:10) [0]

В программе есть строка, которая работает:
attr := FileGetAttr(s);
где attr – integer (пробовал word), s – string;

При компиляции выдается предупреждение:
[Warning] uMain.pas(307): Symbol "FileGetAttr" is specific to a platform

Что это может означать, и какие проблемы могут возникнуть?
Я это понял только приблизительно, что код должен быть более "аккуратным", но как это сделать? Т.е. как исправить код, чтобы этого сообщение не было?


 
KilkennyCat ©   (2008-01-28 10:27) [1]

> Что это может означать, и какие проблемы могут возникнуть?

Это означает, что корректность работы данной функции зависит от операционной системы. То есть, где-то будет работать, ге-то нет, где-то частично.


 
KilkennyCat ©   (2008-01-28 10:29) [2]

> Т.е. как исправить код, чтобы этого сообщение не было?

сначала подумать, где эта часть кода будет работать.
faReadOnly
   The file is read-only.
faHidden
   The file is hidden. (On unix, this means that the filename starts with a dot)
faSysFile
   The file is a system file (On unix, this means that the file is a character, block or FIFO file).
faVolumeId
   Volume Label. Not possible under unix.
faDirectory
   File is a directory.
faArchive
   file is an archive. Not possible on Unix


 
KilkennyCat ©   (2008-01-28 10:41) [3]

да, совсем забыл: в этих случаях компилятору полезно указывать, под какую ОС что будет.

{$IFDEF MSWINDOWS}
....
{$ENDIF}
{$IFDEF LINUX}
....
{$ENDIF}


 
ketmar ©   (2008-01-28 11:13) [4]

что смешно: кайликса давно нет, а варнинги остались…


 
abhtr   (2008-01-28 11:28) [5]

Попробовал так:

         {$IFDEF MSWINDOWS}
            GetDir(0,s); { 0 = Current drive }
            s:=s+"\Aktosp.arj";
            FileSetAttr(s,attr and not faReadOnly);
         {$ENDIF}

Сообщения:
[Warning] uMain.pas(307): Symbol "FileSetAttr" is specific to a platform
[Warning] uMain.pas(307): Symbol "faReadOnly" is specific to a platform
остались :о(


 
ketmar ©   (2008-01-28 11:53) [6]

а куда ж они деться должны? конечно, останутся. тебе намекали, что код надо аккуратно разделить, а потом для данного модуля сей варнинг выключить.


 
abhtr   (2008-01-28 12:29) [7]

Пытаюсь догадаться.
Все функции, которые выдают такое сообщение нужно помещать в отдельный *.pas файл. Например, MyFunc.pas. Затем переходим на этот модуль и вставляем в начале и в конце раздела implementation:

{$IFDEF MSWINDOWS}
...
Здесь реализация функций, которые вызывают сообщение:  "[Warning] ..."
...
{$ENDIF}

Пока все правильно? Или все-таки что-то не то?
Если все правильно, то как теперь выключить "[Warning] ..."?
Честно скажу, ни как не получается выбрать время для досконального изучения настроек Dephi, поэтому, если можно, скажите где это делается?


 
ketmar ©   (2008-01-28 12:32) [8]

в общем да. а делается в настройках компилятора, там, где варнинги настраиваются. project->compiler options->warnings или где-то в том районе.


 
Игорь Шевченко ©   (2008-01-28 12:37) [9]

{$IFDEF MSWINDOWS}
{$WARN SYMBOL_PLATFORM OFF}
.....
{$ENDIF}


 
abhtr   (2008-01-28 12:57) [10]

Спасибо!
Сработало и {$WARN SYMBOL_PLATFORM OFF}, и
Project -> Options... -> Compiller Messages:
Для Platform Symbol снимаем "галочку".
Еще раз, спасибо!


 
ketmar ©   (2008-01-28 12:59) [11]

>[10] abhtr (28.01.08 12:57)
учти, что «галочка» — она на весь проект влияет. так что правильно — как в [9] написано.


 
abhtr   (2008-01-28 13:12) [12]

Спасибо,
> ketmar
.
Учту.



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

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

Наверх




Память: 0.49 MB
Время: 0.014 c
15-1200932045
Piter
2008-01-21 19:14
2008.02.24
Передача данных в DLL, которые могут быть изменены


11-1184218228
BMouradov
2007-07-12 09:30
2008.02.24
KOLTreeView - корневые узлы


3-1191778975
3Lander
2007-10-07 21:42
2008.02.24
Вопрос по работе с IBX


15-1200834722
Piter
2008-01-20 16:12
2008.02.24
WEB - как стандартный интерфейс программы?


15-1200751022
voidMan
2008-01-19 16:57
2008.02.24
Скачано или скачЕНо - как правильно?