Bonjour,
Le titre résume bienle problème.
J'appel une dll depuis un exe et lorsque je ferme l'exe j'ai le trap suivant :
RunTime 216 at 00543A92
Noter que ce problème se manifeste lorsque le code est le suivant :
Par contre il n'y a pas de problème lorsque le code est le suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 Procedure AFFICHE_NEW_NOTE(ParentApplication: TApplication; ParentMDIFORM:TFORM; ParentDATABASE:My_T_DATABASE; ParentSESSION:MY_T_SESSION_TRANSACTION; PTR_WORK_DLL:T_WORK); export;stdcall; begin My_DATABASE := ParentDATABASE; MY_SESSION_TRANSACTION[1].MY_Transaction := ParentSESSION.MY_Transaction; PTR_WORK:=PTR_WORK_DLL; MY_NOTES_LANCEUR.LANCER_NOTES_FORM end;
vous aurez remarquer que la différence est PTR_WORK:=PTR_WORK_DLL;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 Procedure AFFICHE_NEW_NOTE(ParentApplication: TApplication; ParentMDIFORM:TFORM; ParentDATABASE:My_T_DATABASE; ParentSESSION:MY_T_SESSION_TRANSACTION; PTR_WORK_DLL:T_WORK); export;stdcall; begin My_DATABASE := ParentDATABASE; MY_SESSION_TRANSACTION[1].MY_Transaction := ParentSESSION.MY_Transaction; MY_NOTES_LANCEUR.LANCER_NOTES_FORM end;
Sachant que PTR_WORK est une zone de travail utilisé dans l'exe, initialisation de varaible, de flag etc..
l'appel de ma dll est statique et comme ci-dessous :
End;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Begin PTR_WORK.Flag1 := 1; PTR_WORK.Flag2 := 2; PTR_WORK.Flag3 := 3; PTR_WORK.Flag4 := 4; PTR_WORK.Flag5 := 5; AFFICHE_NEW_NOTE(application,PTR_WORK.PARENT_MDIFORM,My_DATABASE,MY_SESSION_TRANSACTION[1],PTR_WORK);
Merci de votre aide;
Partager