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

Вниз

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

Наверх





Память: 0.47 MB
Время: 0.07 c
15-1201277000
Petr V. Abramov
2008-01-25 19:03
2008.02.24
TWO_PHASE_COMMIT в шлюзе Oracle -> MSSQL


2-1201491838
Shpux
2008-01-28 06:43
2008.02.24
Закрыть приложение - Excel


15-1200506129
TStas
2008-01-16 20:55
2008.02.24
Чем открывать файл электронной книги djvu?


15-1201252151
tolyan
2008-01-25 12:09
2008.02.24
загрдиск


2-1201712168
AlexanderMS
2008-01-30 19:56
2008.02.24
Как "разбить" 1 байт на 4 группы по 2 бита.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский