Bonjour tout le monde,

Je cherche à convertir un projet actuellement en standalone en ISAPI (.dll => .exe).
Ce projet sous windows xp accède via delphi 7 Ent + IntraWeb v7.2.41 à une base oracle 8i.

Suite à des recherches que j'ai effectué sur le net j'ai cru comprendre que la seule modification à apporter dans mon code résidait dans le .dpr

Voici le .dpr du mode standalone :
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
program Project1;
 
uses
  Forms,
  IWMain,
  ServerController in 'ServerController.pas' {IWServerController: TIWServerController},
  Unit1 in 'Unit1.pas' {IWForm1: TIWFormModuleBase},
  UserSessionUnit in 'UserSessionUnit.pas' {IWUserSession: TIWUserSessionBase};
 
{$R *.res}
 
begin
  Application.Initialize;
  Application.CreateForm(TformIWMain, formIWMain);
  Application.Run;
end.
Et voici le .dpr du mode ISAPI :
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
18
19
library Project1;
 
uses
  ISAPIApp,
  IWInitISAPI,
  ServerController in 'ServerController.pas' {IWServerController: TIWServerController},
  Unit1 in 'Unit1.pas' {IWForm1: TIWFormModuleBase},
  UserSessionUnit in 'UserSessionUnit.pas' {IWUserSession: TIWUserSessionBase};
 
{$R *.res}
 
exports
  GetExtensionversion,
  HttpExtensionProc,
  TerminateExtension;
 
begin
  IWRun;
end.
Les 2 modes compilent mais seul le mode exécutable s'exécute correctement : lors de l'appel de la dll via Internet Explorer une erreur est levée :
L'instruction "0x00fe415b" emploie l'adresse mémoire "0x00000000". La mémoire ne peut pas être "written".
Cette erreur survient lorsque je tente un quelconque accès à la base de données.
Dans un 1er temps je pensais que cela venait du DataModule mais même sans en utiliser j'ai cette erreur.

Pourquoi ?
Comment résoudre ce problème ?

Merci du coup de main.