Здравствуйте!
Есть Dll, на чем написана не известно. Надо подключить в начале работы и выгрузить в конце. Делаю так:
void TForm1::InitKKM()
{
hKKM = LoadLibrary("chon100.dll");
void (*pFeed)(int);
(FARPROC &)pFeed = GetProcAddress(hKKM, "Feed");
void (*pConnectKKM)(int);
(FARPROC &)pConnectKKM = GetProcAddress(hKKM, "ConnectKKM");
}
void __fastcall TForm1::FormCreate(TObject *Sender)
{
InitKKM();
}
void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
{
FreeLibrary(hKKM);
}
Но при вызове функций
void __fastcall TForm1::Button1Click(TObject *Sender)
{
pConnectKKM(1);
pFeed(1);
}
происходит ошибка «
Access violation at address 000000. Read of address 000000»
Функции и переменная описаны так:
HANDLE hKKM;
void (*pFeed)(int);
void (*pConnectKKM)(int);
Что делать?
P.S.: Если делаю так, то все работает... но так нельзя...
void __fastcall TForm1::Button1Click(TObject *Sender)
{
HANDLE hKKM;
void (*pFeed)(int);
void (*pConnectKKM)(int);
hKKM = LoadLibrary("chon100.dll");
void (*pFeed)(int);
(FARPROC &)pFeed = GetProcAddress(hKKM, "Feed");
void (*pConnectKKM)(int);
(FARPROC &)pConnectKKM = GetProcAddress(hKKM, "ConnectKKM");
pConnectKKM(1);
pFeed(1);
FreeLibrary(hKKM);
}
Заранее большое спасибо!!!
Программист — это не профессия... это диагноз.