IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Delphi Discussion :

[D7 - VCL - ISAPI] Problème de passages de paramètres par adresse.


Sujet :

Delphi

  1. #1
    Membre éclairé
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Février 2004
    Messages
    644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant ERP

    Informations forums :
    Inscription : Février 2004
    Messages : 644
    Points : 785
    Points
    785
    Par défaut [D7 - VCL - ISAPI] Problème de passages de paramètres par adresse.
    J'ai une ISAPI développée avec Delphi, et j'essaie de modifier le fonctionnement des fonctions suivantes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    function GetExtensionVersion( var Ver : THSE_VERSION_INFO ) : BOOL;
    function HttpExtensionProc( var ECB : TEXTENSION_CONTROL_BLOCK ) : DWORD
    function TerminateExtension( dwFlags : DWORD ) : BOOL;
    Dans une ISAPI Dll, ces trois fonctions sont les points d'entrées que IIS utilise pour charger cette ISAPI. Le problème est que nous avons constatés un problème dans la gestion des threads de notre ISAPI. Donc on essaie de trouver une solution.

    Pour ma part, étant donné que ces trois fonctions sont exportées, je me suis dis qu'on pouvait faire une dérivation, et externaliser d'autres fonctions mais sous ces noms là.

    En gros, cela donne ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    exports 
     Test_GetExtensionVersion name 'GetExtensionVersion',
     Test_HttpExtensionProc name 'HttpExtensionProc',
     Test_TerminateExtension name 'TerminateExtension';
    Dans une unité j'ai donc défini ces trois fonctions de la manière suivante.
    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
    unit TestOverride;
     
    interface
      uses ISAPI, Windows;
     
      function Test_GetExtensionVersion(var Ver: THSE_VERSION_INFO): BOOL; stdcall;
      function Test_HttpExtensionProc(var ECB: TEXTENSION_CONTROL_BLOCK): DWORD; stdcall;
      function Test_TerminateExtension(dwFlags: DWORD): BOOL; stdcall;
     
    implementation
      uses HTTPApp, ISAPIApp;
     
    function Test_GetExtensionVersion(var Ver: THSE_VERSION_INFO): BOOL;
    begin
      Result := GetExtensionVersion( Ver );
    end;
     
    function Test_HttpExtensionProc(var ECB: TEXTENSION_CONTROL_BLOCK): DWORD;
    begin
      Result := HttpExtensionProc( ECB );
    end;
     
    function Test_TerminateExtension( dwFlags: DWORD): BOOL;
    begin
      Result := TerminateExtension( dwFlags );
    end;
     
    end.
    Le léger soucis se trouve au niveau de la compilation, qui me dit que pour les lignes où se trouve l'appel aux fonctions HttpExtensionProc et GetExtensionVersion ( définie par Borland ), j'ai l'erreur suivante : "Les types des paramètres VAR originaux et formels doivent être identiques"

    Chose étrange, car lorsque je vais voir dans le source de la VCL, les éléments ont la même signature.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    function GetExtensionVersion(var Ver: THSE_VERSION_INFO): BOOL;
    function HttpExtensionProc(var ECB: TEXTENSION_CONTROL_BLOCK): DWORD;
    function TerminateExtension(dwFlags: DWORD): BOOL;
    Quelqu'un aurait-il une idée ?

    Merci

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 563
    Points : 25 165
    Points
    25 165
    Par défaut
    Peut-être un soucis de Uses entre ISAPI et ISAPI2 ?

  3. #3
    Membre éclairé
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Février 2004
    Messages
    644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant ERP

    Informations forums :
    Inscription : Février 2004
    Messages : 644
    Points : 785
    Points
    785
    Par défaut
    Merci, effectivement, c'était un problème de Unit.

    Pourquoi avons-nous deux unités ISAPI ?

    Merci

  4. #4
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 563
    Points : 25 165
    Points
    25 165
    Par défaut
    C'est une bonne question, je pense que l'une c'est juste un header, et l'autre l'implémentation complète ?
    Ou alors comme souvent chez microsoft, il y a des changements de version des Structures ...


    Sinon un Tag Résolu svp !

Discussions similaires

  1. Problème de passage de paramètre par bean
    Par fab76000 dans le forum Servlets/JSP
    Réponses: 7
    Dernier message: 08/01/2009, 20h44
  2. [c] passage de paramètres par adresse
    Par Ashin dans le forum C
    Réponses: 11
    Dernier message: 25/03/2008, 17h36
  3. Passage de paramètres par adresse
    Par Irish dans le forum ASP.NET
    Réponses: 2
    Dernier message: 27/02/2007, 17h39
  4. Passage de paramètre par adresse, pointeur
    Par spileo dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 19/01/2007, 19h00
  5. Réponses: 19
    Dernier message: 09/06/2006, 10h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo