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

Вниз

Чем плох статический импорт в 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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.076 c
15-1173256037
Некто
2007-03-07 11:27
2007.04.01
Простые тосты к 8.03


15-1173536395
mentor-m
2007-03-10 17:19
2007.04.01
Командная строка


15-1172572044
Romm
2007-02-27 13:27
2007.04.01
Литература


2-1173470070
arturich
2007-03-09 22:54
2007.04.01
Как получить текст из поля веб страницы


15-1172656454
IMHO
2007-02-28 12:54
2007.04.01
Зенит купил Тимощука за 20 миллионов долларов!!!