Ученик-кочегар
Группа: Участник
Сообщений: 22
|
Прислали мне дллку, и дали к ней "описание" Выглядит это "описание" так :
CODE |
procedure InitDll(Callback: TDllCallback); stdcall; external 'Comport.dll' name 'InitDll';
procedure CloseDll; stdcall; external 'comport.dll' name 'CloseDll';
procedure InitCom(id:integer; com: integer); stdcall; external 'comport.dll' name 'InitCom';
procedure CloseCom(id:integer); stdcall; external 'comport.dll' name 'CloseCom';
|
Подскажите, как мне в билдере переопределить эти функции для использования в своём коде ?
Я делаю вот что :
CODE |
HINSTANCE dllhandle;
__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner)
{
dllhandle = LoadLibrary("comport.dll");
if(dllhandle)
{
lErrors->Caption = "Unable to load DLL!";
}
else
{
lErrors->Caption = "DLL successfully loaded!";
}
}
|
далее как я понял мне надо экспортировать функции из длл. в инете нарыл что то типа :
CODE |
typedef void __declspec(dllimport) SayType(char *);
SayType *LoadSayFunction;
|
тобиш в длл есть функция SayType(char *); и её таким образом надо переопределить в билдере чтобы использовать после LoadLibrary() таким вот образом :
CODE |
LoadSayFunction = (SayType *)GetProcAddress(dllhandle, "_Say");
LoadSayFunction("Say Hello!");
|
и теперь сижу парюсь как такое провернуть с тем что имею особенно не врубаюсь вот в это :
CODE |
procedure InitDll(Callback: TDllCallback); stdcall; external 'Comport.dll' name 'InitDll';
|
и откуда берётся "_Say" вот в этом :
CODE |
LoadSayFunction = (SayType *)GetProcAddress(dllhandle, "_Say");
|
Прошу прощения если такая тема уже была где-то тут. Ткните носом тогда плизз где это уже было. |