Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.027 c
15-1173553043
alexsis
2007-03-10 21:57
2007.04.01
Помогите пожалуйста!


15-1173453409
Sergp_N/A
2007-03-09 18:16
2007.04.01
Чем можно создать разделы на винте?


9-1143529208
Gleb
2006-03-28 11:00
2007.04.01
Нужно написать функцию которую при нажатии на кнопку выполняет


1-1170775820
Krants
2007-02-06 18:30
2007.04.01
Прокрутка для WebBrowser


3-1168931638
jeka_t
2007-01-16 10:13
2007.04.01
Как правильно передать американский формат вещественного числа?




   Наверх