Voici mon problème.

J'avais une DLL, avec une fonction exporté :
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';
Fonction que j'appelais comme ça depuis un exe :
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);
Jusque là, tout allait bien.

Maintenant, je veux rajouter un paramètre.
Dans ma DLL :
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;
Dans mon exe :
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);
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
1
2
3
4
      _szCodeSociete := sCodeSociete;
      _szCodeSite := sCodeSite;
      _szCodeAtelier := sCodeAtelier;
      _szCodeZone := sCodeZone;    <-- ERREUR ICI.
Qu'est ce que j'ai oublié ?