Главная страница
    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.043 c
15-1200841437
Drowsy
2008-01-20 18:03
2008.02.24
FIBPlus.


15-1200926297
@!!ex
2008-01-21 17:38
2008.02.24
Помогите оплатить софтину через PayPal


2-1201533405
fics
2008-01-28 18:16
2008.02.24
SaveDialog


2-1200477368
Washington
2008-01-16 12:56
2008.02.24
Панель задач - трей


2-1201686174
mrFreeman2007
2008-01-30 12:42
2008.02.24
Установка компонентов в новых версиях Дельфи





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