Форум: "Начинающим";
Текущий архив: 2007.04.01;
Скачать: [xml.tar.bz2];
ВнизЧем плох статический импорт в interface? Найти похожие ветки
← →
GrayFace © (2007-03-07 20:25) [0]Есть ли смысл объявлять как в Windows.pas? Так:
interface
function FindClose(hFindFile: THandle): BOOL; stdcall;
implementation
function FindClose; external kernel32 name "FindClose";
Я бы написал так:interface
function FindClose(hFindFile: THandle): BOOL; stdcall; external kernel32 name "FindClose";
Есть ли разница?
← →
GrayFace © (2007-03-07 20:26) [1]Ой, извеняюсь. Не туда запостил
← →
DrPass © (2007-03-08 00:24) [2]
> Есть ли разница?
Есть. В первом случае ты можешь иметь один и тот же интерфейс, но разную реализацию... например, в зависимости от директив компилятора или платформы
← →
Германн © (2007-03-08 00:38) [3]
> DrPass © (08.03.07 00:24) [2]
>
>
> > Есть ли разница?
>
> Есть. В первом случае ты можешь иметь один и тот же интерфейс,
> но разную реализацию... например, в зависимости от директив
> компилятора или платформы
>
Поясни, пожалуйста.
← →
Игорь Шевченко © (2007-03-08 00:47) [4]Германн © (08.03.07 00:38) [3]
> > Есть. В первом случае ты можешь иметь один и тот же интерфейс,
>
> > но разную реализацию... например, в зависимости от директив
>
> > компилятора или платформы
> >
>
> Поясни, пожалуйста.
interface
function memcmp (P1, P2: Pointer; Size: Cardinal): Integer; cdecl;
implementation
{$IFDEF USE_CRTL}
function memcmp; external "msvcrt.dll" name "_memcmp";
{$ELSE}
function memcmp; external "ntdll.dll" name "memcmp";
{$ENDIF}
← →
Германн © (2007-03-08 00:57) [5]
> Игорь Шевченко © (08.03.07 00:47) [4]
>
> Германн © (08.03.07 00:38) [3]
А в секции interface я не могу так написАть? То бишь я не могу реализовать "условную компилляцию" в секции interface?
← →
Джо © (2007-03-08 01:05) [6]Да, не понимаю того же, что и [5] Германн ©.
Разве что, это позволяет не замусоривать секцию interface.
← →
Джо © (2007-03-08 01:06) [7]Впрочем, например, в Windows.pas она и так достаточно «замусорена».
← →
Плохиш © (2007-03-08 02:47) [8]
interface
function memcmp (P1, P2: Pointer; Size: Cardinal): Integer; cdecl;
implementation
{$IFDEF MSWINDOWS}
function memcmp; external "msvcrt.dll" name "_memcmp";
{$ELSE}
function memcmp;
begin
// Ваяем, чё там фигачат эти не мс-кие системы
end;
{$ENDIF}
← →
Eraser © (2007-03-08 03:17) [9]> [6] Джо © (08.03.07 01:05)
насчет замусоревания вопрос вообще интересный, я вот последнее время все заголовки к библиотекам (хоть их и не много) пишу с возможностью динамической загрузки, подобно тому, как в Джедаях сделано, вот там действительно замусоревание )) ... хотя в ряде случаев сильно облегчает жизнь.
← →
Джо © (2007-03-08 03:47) [10]> [9] Eraser © (08.03.07 03:17)
> > [6] Джо © (08.03.07 01:05)
>
> насчет замусоревания вопрос вообще интересный, я вот последнее
> время все заголовки к библиотекам (хоть их и не много) пишу
> с возможностью динамической загрузки, подобно тому, как
> в Джедаях сделано, вот там действительно замусоревание )
> ) ... хотя в ряде случаев сильно облегчает жизнь.
Да, хитрО в джедаях сделано, и хитро, и удобно. Но — замусорено же! :)
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.04.01;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.043 c