BBB » 23 май 2007, 09:45
Oleg_Rus писал(а):Подскажите, как .... подключаются Dll-ки в Dlphi?
Подключаются с помощью создания модуля(unit)-"переходника". Разумеется, надо знать именя функций, экспортирунемых DLL-ю, набор их параметров и их calling convention.
Примером такого модуля-переходника может служить дельфийный Windows.pas. Хотя там много всего и, быть может, нелегко будет понять, что к чему.
Если коротко, то вот такой более простой пример.
Скажем, некоторая
MyCPPdll.DLL экспортирует функцию
DoSomething,
реализованную как:
Код: Выделить всё
long WINAPI DoSomething (
ULONG uiMode,
void* pData,
char *pacMsg
);
Тогда модуль-переходник будет выглядеть так:
Код: Выделить всё
unit MyDLL_U;
//****************************************************
interface
//****************************************************
function DoSomething (
uiMode : Longword;
pDIB : pointer;
pacMsg : PChar) : longint; stdcall;
//****************************************************
implementation
//****************************************************
function DoSomething (
uiMode : Longword;
var pDIB : pointer;
pacMsg : PChar) : longint;
stdcall; external 'MyCPPdll.DLL' name 'DoSomething';
end.
[quote="Oleg_Rus"]Подскажите, как .... подключаются Dll-ки в Dlphi?[/quote]Подключаются с помощью создания модуля(unit)-"переходника". Разумеется, надо знать именя функций, экспортирунемых DLL-ю, набор их параметров и их calling convention.
Примером такого модуля-переходника может служить дельфийный Windows.pas. Хотя там много всего и, быть может, нелегко будет понять, что к чему.
Если коротко, то вот такой более простой пример.
Скажем, некоторая [b]MyCPPdll.DLL[/b] экспортирует функцию [b]DoSomething[/b],
реализованную как:
[code] long WINAPI DoSomething (
ULONG uiMode,
void* pData,
char *pacMsg
);[/code]
Тогда модуль-переходник будет выглядеть так:
[code]
unit MyDLL_U;
//****************************************************
interface
//****************************************************
function DoSomething (
uiMode : Longword;
pDIB : pointer;
pacMsg : PChar) : longint; stdcall;
//****************************************************
implementation
//****************************************************
function DoSomething (
uiMode : Longword;
var pDIB : pointer;
pacMsg : PChar) : longint;
stdcall; external 'MyCPPdll.DLL' name 'DoSomething';
end.[/code]