Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Outils > XMLRAD
XMLRAD Environnement de développement Web XML/XSL. Avant de poster -> F.A.Q XMLRAD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 06/05/2003, 08h54   #1
Membre régulier
 
Inscription : janvier 2003
Messages : 207
Détails du profil
Informations forums :
Inscription : janvier 2003
Messages : 207
Points : 94
Points : 94
Envoyer un message via MSN à rgarnier
Par défaut Dialogue DLL externe

Petit pb ...

Je voudrais faire appel à des fonctions d'une dll maison à l'intérieur de mon appli xmlrad.

J'ai intégré le code suivant dans implementation :
procedure FctDll; stdcall; external 'madll.dll' name 'FctDll';
Puis, dans mon code :
MaVariable := FctDll;
(fctDll renvoie une chaine de caractères)

Le pb :
- mon appli n'arrive pas à atteindre le DLL
Violation d'accès à l'adresse 01C43305 dans le module 'MaDll.dll'. Lecture de l'adresse 00000318
- si j'essaie d'initialiser la Dll à l'intérieur de mon appli, elle est créée dans le process inetinfo et ne marche pas ...

Quelqu'un aurait-il une idée ??? (ou alors, ce n'est peut-être pas possible ???)

Merci
__________________
Renaud
W2003 / XP /VISTA
SQL SERVER / ORACLE
ADO
rgarnier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/05/2003, 09h50   #2
RDM
Membre Expert
 
Inscription : mars 2002
Messages : 1 426
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 1 426
Points : 1 546
Points : 1 546
Envoyer un message via ICQ à RDM
c'est totalement possible sauf que:
Citation:
procedure FctDll; stdcall; external 'madll.dll' name 'FctDll';
tu déclares une procedure
Citation:
MaVariable := FctDll;
tu l'appelles comme une fonction
et tu dis qu'elle renvoie une chaine de caractère (j'espere que c'est pas le type string...
bref si tu pouvais nous donner le code exacte, on pourrait sans doute identifier de facon plus précise le problème [/quote]
__________________
RDM
Tout Est Relatif
Rubrique XMLRAD: http://xmlrad.developpez.com
FAQ XMLRAD: http://xmlrad.developpez.com/faq/
RDM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/05/2003, 10h33   #3
Membre régulier
 
Inscription : janvier 2003
Messages : 207
Détails du profil
Informations forums :
Inscription : janvier 2003
Messages : 207
Points : 94
Points : 94
Envoyer un message via MSN à rgarnier
Si, c'est bien du string ....

En fait, voilà le code exact :

Dans implementation :
function GetName(uid : shortstring):shortstring;stdcall;external 'LpLdap.dll' name 'GetName';

Dans le code :
var
MaVariable : String;
begin
MaVariable := GetName('User');
end;
__________________
Renaud
W2003 / XP /VISTA
SQL SERVER / ORACLE
ADO
rgarnier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/05/2003, 10h40   #4
RDM
Membre Expert
 
Inscription : mars 2002
Messages : 1 426
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 1 426
Points : 1 546
Points : 1 546
Envoyer un message via ICQ à RDM
ah bon je préfère cette déclaration la. (ShortString)
mais dans la DLL comment est-ce déclaré ?

la fonction est elle bien aussi déclarée en stdcall ?

d'après ce que je vois il n'y a pas de raison pour que ca ne fonctionne pas. sauf erreur de déclaration et de convention d'appel.
__________________
RDM
Tout Est Relatif
Rubrique XMLRAD: http://xmlrad.developpez.com
FAQ XMLRAD: http://xmlrad.developpez.com/faq/
RDM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/05/2003, 11h21   #5
Membre régulier
 
Inscription : janvier 2003
Messages : 207
Détails du profil
Informations forums :
Inscription : janvier 2003
Messages : 207
Points : 94
Points : 94
Envoyer un message via MSN à rgarnier
Voici le code de la déclaration dans la dll en question :

function GetName(uid : shortstring):ShortString;stdcall;

.....

P.S. : cette DLL lance une IHM (systray) ... cela ne serait-il pas un pb ?????
__________________
Renaud
W2003 / XP /VISTA
SQL SERVER / ORACLE
ADO
rgarnier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/05/2003, 15h00   #6
RDM
Membre Expert
 
Inscription : mars 2002
Messages : 1 426
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 1 426
Points : 1 546
Points : 1 546
Envoyer un message via ICQ à RDM
c'est possible...
est-ce que tu arrives à debuger la DLL ? est-ce que tuarrives a savoir quelle est la ligne qui pete une AV dans la dll ?
__________________
RDM
Tout Est Relatif
Rubrique XMLRAD: http://xmlrad.developpez.com
FAQ XMLRAD: http://xmlrad.developpez.com/faq/
RDM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/05/2003, 12h04   #7
Membre régulier
 
Inscription : janvier 2003
Messages : 207
Détails du profil
Informations forums :
Inscription : janvier 2003
Messages : 207
Points : 94
Points : 94
Envoyer un message via MSN à rgarnier
Je n'ai pas la main pour debugger la DLL. Le développeur a fait des modifs, et on avance un peu...

Merci quand même.
__________________
Renaud
W2003 / XP /VISTA
SQL SERVER / ORACLE
ADO
rgarnier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/05/2003, 14h16   #8
Membre régulier
 
Inscription : janvier 2003
Messages : 207
Détails du profil
Informations forums :
Inscription : janvier 2003
Messages : 207
Points : 94
Points : 94
Envoyer un message via MSN à rgarnier
Re suite ...

En fait, l'appel à la DLL se fait bien avec une petite appli Delphi 'classique'.

Le pb ne se pose qu'avec la DLL ISAPI. j'ai fait 2 tests :

- la DLL n'est pas lancée : L'appel à une fct de la DLL la fait se charger en mémoire mais à priori dans le process inetinfo

- la DLL est déjà lancée : c'est pareil que le cas précédent, la DLL est à nouveau lancée dans inetinfo..

En fait, la DLL renvoie bien un résultat, donc bien lancée, mais comme il se trouve qu'à l'intérieur on lance une JVM, je me demande à quel point inetinfo peut le supporter ....
__________________
Renaud
W2003 / XP /VISTA
SQL SERVER / ORACLE
ADO
rgarnier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/05/2003, 14h28   #9
RDM
Membre Expert
 
Inscription : mars 2002
Messages : 1 426
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 1 426
Points : 1 546
Points : 1 546
Envoyer un message via ICQ à RDM
ouch !
ah oui c'est pas gagné cela !
comme on est en processus bas, au niveau de la protection de l'application, toutes les DLL ISAPI sont chargé sous le controle du processus inetinfo.exe et donc les DLL chargés par l'ISAPI aussi !

Par exemple j'ai remarqué que pour une ISAPI la taille de la pile est limité par IIS et donc moins importante que une appli classique windows. cela peut entrainer une av.
__________________
RDM
Tout Est Relatif
Rubrique XMLRAD: http://xmlrad.developpez.com
FAQ XMLRAD: http://xmlrad.developpez.com/faq/
RDM est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h21.


 
 
 
 
Partenaires

Hébergement Web