Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.07.04;
Скачать: CL | DM;

Вниз

Надо загрузить функцию из DLL написанной на C...   Найти похожие ветки 

 
Tom   (2004-06-22 10:58) [0]

Помогите пожалуйста!!!
Надо загрузить следуюшую функцию из DLL написанной на C:

Итак имеется такое обьявление :
void  EXPTYPE FSL_SetUI(void *fnAbortRetry, void *fnError, void *fnWarning);

И приводится пример вызова в C:
INT16 WINAPI MyAbortRetry(BYTE *strTitle, BYTE *strMessage)
   {
     int iRet = MessageBox(NULL, strMessage, strTitle, MB_RETRYCANCEL | MB_ICONERROR);
     if(iRet == IDRETRY) return(1);
     return(0);
   }

   void WINAPI MyMessageError(BYTE *strTitle, BYTE *strMessage)
   {
     MessageBox(NULL, strMessage, strTitle, MB_OK | MB_ICONERROR);
   }
 
   void WINAPI MyMessageWarning(BYTE *strTitle, BYTE *strMessage)
   {
     MessageBox(NULL, strMessage, strTitle, MB_OK | MB_ICONWARNING);
   }

вызов :
     FSL_SetUI(MyAbortRetry, MyMessageError, MyMessageWarning);

Теперь надо ее позвать из Delphi,Делаю следующее:

type
 ProcedureType = Procedure(str1 : string; str2 : string);

 ProcedurePointer = ^ProcedureType;

 procedure MyAbortRetry(str1:string ;  str2:string);
 procedure MyMessageError(str1:string ;  str2:string);
 procedure  MyMessageWarning(str1:string ;  str2:string);

 procedure  FSL_SetUI (fnAbortRetry:ProcedurePointer ; fnError : ProcedurePointer; fnWarning:ProcedurePointer); stdcall;  external "rapidsign.dll" name "FSL_SetUI";

И вызов :

FSL_SetUI(@MyAbortRetry,@MyMessageError,@MyMessageWarning);

Видимо допускаю грубую ошибку потому 4то выдает
"Access Voilation".


 
clickmaker ©   (2004-06-22 11:02) [1]

procedure MyAbortRetry(str1: PChar ;  str2: PChar);


 
Digitman ©   (2004-06-22 11:04) [2]

type
ProcedureType = Procedure(str1, str2 : PChar); stdcall;

procedure MyAbortRetry(str1, str2 : PChar); stdcall;
procedure MyMessageError(str1, str2 : PChar); stdcall;
procedure  MyMessageWarning(str1, str2 : PChar); stdcall;

procedure  FSL_SetUI (fnAbortRetry:Pointer ; fnError : Pointer; fnWarning:pointer); stdcall;  external "rapidsign.dll" name "FSL_SetUI";


 
Tom   (2004-06-22 11:09) [3]

Спасибо Люди!!!
>>Digitman
  Ввек вас незабуду!!! Всегда мне помогаете!!! :)



Страницы: 1 вся ветка

Текущий архив: 2004.07.04;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.047 c
3-1086783370
Лера
2004-06-09 16:16
2004.07.04
Direct Oracle Access


1-1087892731
}|{yk
2004-06-22 12:25
2004.07.04
Как передав SendMessage указатель на строку


1-1087581978
zep
2004-06-18 22:06
2004.07.04
Listbox


6-1084029544
freak
2004-05-08 19:19
2004.07.04
Как по UDP (используя Indy) передать файл поблочно.


14-1087162008
VID
2004-06-14 01:26
2004.07.04
Просто замучился искать....