Voici mon problème.
J'avais une DLL, avec une fonction exporté :
Fonction que j'appelais comme ça depuis un exe :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 procedure InitColisageDLL(HandleApp: HWND; pSession: Pointer; const sCodeSociete, sCodeSite, sCodeAtelier, sUtilisateur: PChar; const bAdministrateur: LongBool); stdcall; exports InitColisageDLL name 'InitColisageDLL';
Jusque là, tout allait bien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 var InitColisageDLL: procedure(HandleApp: HWND; pSession: Pointer; const sCodeSociete, sCodeSite, sCodeAtelier, sUtilisateur: PChar; const bAdministrateur: LongBool); stdcall; ... HandleDLLColisage := LoadLibrary('C:\DLL\Colisage.dll'); if HandleDLLColisage = 0 then Application.MessageBox('.Erreur : ...') else begin try @InitColisageDLL := GetProcAddress(HandleDLLColisage, 'InitColisageDLL'); if @InitColisageDLL = nil then Application.MessageBox(PChar('.Erreur : ...') else begin try try InitColisageDLL(Application.Handle, @Session, PChar('HE'), PChar('HM'), PChar('15'), PChar(szUtilisateur), bDroitAdmin);
Maintenant, je veux rajouter un paramètre.
Dans ma DLL :
Dans mon exe :
Code : Sélectionner tout - Visualiser dans une fenêtre à part procedure InitColisageDLL(HandleApp: HWND; pSession: Pointer; const sCodeSociete, sCodeSite, sCodeAtelier, sCodeZone, sUtilisateur: PChar; const bAdministrateur: LongBool); stdcall;
Si j'essai de récupérer la valeur de ce nouveau paramètre (sCodeZone), j'ai une splendide erreur (violation d'accès), comme s'il n'existait pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part InitColisageDLL(Application.Handle, @Session, PChar('HE'), PChar('HM'), PChar('15'), PChar('1'), PChar(szUtilisateur), bDroitAdmin);
Qu'est ce que j'ai oublié ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 _szCodeSociete := sCodeSociete; _szCodeSite := sCodeSite; _szCodeAtelier := sCodeAtelier; _szCodeZone := sCodeZone; <-- ERREUR ICI.
![]()
Partager