Текущий архив: 2005.07.31;
Скачать: CL | DM;
ВнизПорядок в uses Найти похожие ветки
← →
SergP. (2005-07-13 16:41) [0]В приведенном коде компилятор ругается на строку FindClose(z);
[Error] C412.dpr(56): Incompatible types: "Cardinal" and "TSearchRec"
program C412;
{$APPTYPE CONSOLE}
USES
sysUtils,Windows,comobj,activex,word2000;
....
var
z:TSearchRec;
...
FindClose(z);
...
но если поменять местами перечень модулей в uses на:
USES
Windows,sysUtils,comobj,activex,word2000;
то компилируется нормально.
Что это за фигня такая?
← →
Digitman © (2005-07-13 16:43) [1]а поменять - рука, конечно же, не поворачивается ..
← →
Просто Джо © (2005-07-13 16:43) [2]Windows.FindClose и SysUtils.FindClose - разные функции.
← →
Просто Джо © (2005-07-13 16:46) [3]Если не указано явно имя юнита перед функцией, используется тот, который идет в uses последним.
Например,
uses Windows, SysUtils;
...
FindClose; <- подразумевается SysUtils.FindClose
---
uses SysUtils,Windows;
...
FindClose; <- подразумевается Windows.FindClose
Если порядок юнитов менять нежелательно, указывай спецификатор юнита, напримерSysUtils.FindClose
← →
SergP. (2005-07-13 16:49) [4]
> Просто Джо © (13.07.05 16:43) [2]
> Windows.FindClose и SysUtils.FindClose - разные функции.
Ну а зачем их одинаково назвали?
> Digitman © (13.07.05 16:43) [1]
> а поменять - рука, конечно же, не поворачивается ..
Поворачивается... Но что будет если какая-нить другая функция тоже будет в обоих модулях, но нужна будет из sysutils?
Как указать из какого модуля брать требуемую функцию?
← →
Просто Джо © (2005-07-13 16:50) [5]
> [4] SergP. (13.07.05 16:49)
> Ну а зачем их одинаково назвали?
У тебя забыли спросить?
> Как указать из какого модуля брать требуемую функцию?
См. [3].
← →
Digitman © (2005-07-13 16:50) [6]
> Как указать из какого модуля брать требуемую функцию?
так и укажи : Unitname.IdentifierName
Страницы: 1 вся ветка
Текущий архив: 2005.07.31;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.04 c