|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre régulier
![]() |
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 |
|
|
00
|
|
|
#2 | ||
|
Membre Expert
![]() |
c'est totalement possible sauf que:
Citation:
Citation:
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
__________________
RDM Tout Est Relatif Rubrique XMLRAD: http://xmlrad.developpez.com FAQ XMLRAD: http://xmlrad.developpez.com/faq/ |
||
|
|
00
|
|
|
#3 |
|
Membre régulier
![]() |
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 |
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() |
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/ |
|
|
00
|
|
|
#5 |
|
Membre régulier
![]() |
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 |
|
|
00
|
|
|
#6 |
|
Membre Expert
![]() |
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/ |
|
|
00
|
|
|
#7 |
|
Membre régulier
![]() |
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 |
|
|
00
|
|
|
#8 |
|
Membre régulier
![]() |
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 |
|
|
00
|
|
|
#9 |
|
Membre Expert
![]() |
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/ |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com