![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Чем плох статический импорт в interface?
GrayFace © (2007-03-07 20:25:00)Есть ли смысл объявлять как в 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';
Есть ли разница?
Джо (2007-03-08 03:47:00) [1]> [9] Eraser © (08.03.07 03:17)
> > [6] Джо © (08.03.07 01:05)
>
> насчет замусоревания вопрос вообще интересный, я вот последнее
> время все заголовки к библиотекам (хоть их и не много) пишу
> с возможностью динамической загрузки, подобно тому, как
> в Джедаях сделано, вот там действительно замусоревание )
> ) ... хотя в ряде случаев сильно облегчает жизнь.
Да, хитрО в джедаях сделано, и хитро, и удобно. Но — замусорено же! :)
Eraser (2007-03-08 03:17:00) [2]> [6] Джо © (08.03.07 01:05)
насчет замусоревания вопрос вообще интересный, я вот последнее время все заголовки к библиотекам (хоть их и не много) пишу с возможностью динамической загрузки, подобно тому, как в Джедаях сделано, вот там действительно замусоревание )) ... хотя в ряде случаев сильно облегчает жизнь.
Плохиш (2007-03-08 02:47:00) [3]
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}
Джо (2007-03-08 01:06:00) [4]Впрочем, например, в Windows.pas она и так достаточно «замусорена».
Джо (2007-03-08 01:05:00) [5]Да, не понимаю того же, что и [5] Германн ©.
Разве что, это позволяет не замусоривать секцию interface.
Германн (2007-03-08 00:57:00) [6]
> Игорь Шевченко © (08.03.07 00:47) [4]
>
> Германн © (08.03.07 00:38) [3]
А в секции interface я не могу так написАть? То бишь я не могу реализовать "условную компилляцию" в секции interface?
Игорь Шевченко (2007-03-08 00:47:00) [7]Германн © (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:38:00) [8]
> DrPass © (08.03.07 00:24) [2]
>
>
> > Есть ли разница?
>
> Есть. В первом случае ты можешь иметь один и тот же интерфейс,
> но разную реализацию... например, в зависимости от директив
> компилятора или платформы
>
Поясни, пожалуйста.
DrPass (2007-03-08 00:24:00) [9]
> Есть ли разница?
Есть. В первом случае ты можешь иметь один и тот же интерфейс, но разную реализацию... например, в зависимости от директив компилятора или платформы
GrayFace (2007-03-07 20:26:00) [10]Ой, извеняюсь. Не туда запостил