![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
У меня возникает ошибка при вызове процедуры из DLL внутри потока [D6, WinXP]
Kent © (2002-09-04 16:33:00)Привет, всем !
Прошу помощи, позарез надо решить задачу.
У меня возникает ошибка при вызове процедуры из DLL внутри потока, поток прямой наследник класса TThread, вот кусок кода:
procedure TSPDLLThread.Execute;
var FarProc: procedure (LogFileName,ResultPath,Exclusions: PChar;
UUCounting,LTCounting,DoBackup: Boolean;
BackupName: PChar; EraseLog: Boolean);
begin
OnTerminate:=Form1.ThreadDone;
FreeOnTerminate:=True;
if WaitForSingleObject(SPThreadMutex,INFINITE)=WAIT_OBJECT_0 then
begin
FDLLHandle:=LoadLibrary(PChar(FDLLName));
if FDLLHandle<>0 then
begin
@FarProc:=GetProcAddress(FDLLHandle,PChar(FFarProcName));
if @FarProc<>nil then
begin
//Вот если вызов функции FarProc не выполнять, все ОК
//Иначе Access Violation, причем если вызов выполнять
//в контексте основной программы, то все отлично
//Но процедура долгая - нужен параллельный поток
FarProс(FLogFileName,FResultPath,FExclusions,
FUUCounting,FLTCounting,FDoBackup,
FBackupName,FEraseLog);
end;
FreeLibrary(FDLLHandle);
end;
end;
ReleaseMutex(SPThreadMutex);
end;
В чем проблема - никак не доеду :( !!!!
Помогите PLS !!!!
NailS (2002-09-04 17:06:00) [21]А как процедура в длл объявлена?