C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Импорт функций из длл
MOPO3
Отправлено: 19.01.2005, 17:49


Ученик-кочегар

Группа: Участник
Сообщений: 22



Прислали мне дллку, и дали к ней "описание" sad.gif Выглядит это "описание" так :
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!");

и теперь сижу парюсь как такое провернуть с тем что имею sad.gif особенно не врубаюсь вот в это :
CODE

procedure InitDll(Callback: TDllCallback); stdcall; external 'Comport.dll' name 'InitDll';

и откуда берётся "_Say" вот в этом :
CODE

LoadSayFunction = (SayType *)GetProcAddress(dllhandle, "_Say");


Прошу прощения если такая тема уже была где-то тут. Ткните носом тогда плизз где это уже было.

Вернуться в Вопросы программирования в C++Builder