Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Olivier
Je viens de refaire le test avec un typage BSTR long l=hSetCode(_bstr_t(buf));
mais j'ai toujours First-chance exception in App.exe (SXCODE.DLL): 0xC0000005: Access Violation.
"Paul Bacelar" wrote in message news:eS%
Un des inconvénient des catchs d'exception c'est que l'on ne connaît pas
la
ligne fautive mais un débuggeur est fort utile. Donc cela serait très sympathique de spécifier la ligne de lever d'exception et pour le même
prix
le type d'exception.
De plus "ByVal str as String" c'est du VB donc le type du paramètre n'est pas char* mais BSTR ou (_bstr_t pour les faignant comme moi).
Faute des informations plus précise, utilise:
typedef long (CALLBACK* SETCODE) (BSTR);
Paul Bacelar
"Olivier" a écrit dans le message de news:bimuo7$ltn$ > Bonjour, > Je la declaration suivante > Private Declare Function SetCode Lib "SxCode.dll" (ByVal str as String)
as
> Long > > et je voudrai appeller cette fonction sous VC++ > typedef long (CALLBACK* SETCODE) (char*); > SETCODE hSeCode=NULL; > > je fais > try > { > m_ResLibrary=::LoadLibrary("SxCode.DLL"); > hSetCode=(SETCODE) ::GetProcAddress(m_ResLibrary, "SetCode"); > char buf[]="Mon code"; > long l=hSetCode(buf); > } > catch (...) > { > > } > -> J'obtiens un Access Violation et je passe dans le catch > > Comment faire ? > > Merci > >
Je viens de refaire le test avec un typage BSTR
long l=hSetCode(_bstr_t(buf));
mais j'ai toujours First-chance exception in App.exe (SXCODE.DLL):
0xC0000005: Access Violation.
"Paul Bacelar" <bacelar@NOSPAMchez.com> wrote in message
news:eS%23M2DgbDHA.856@tk2msftngp13.phx.gbl...
Un des inconvénient des catchs d'exception c'est que l'on ne connaît pas
la
ligne fautive mais un débuggeur est fort utile. Donc cela serait très
sympathique de spécifier la ligne de lever d'exception et pour le même
prix
le type d'exception.
De plus "ByVal str as String" c'est du VB donc le type du paramètre n'est
pas char* mais BSTR ou (_bstr_t pour les faignant comme moi).
Faute des informations plus précise, utilise:
typedef long (CALLBACK* SETCODE) (BSTR);
Paul Bacelar
"Olivier" <no-oliv.spam@olivie.fr> a écrit dans le message de
news:bimuo7$ltn$1@s1.read.news.oleane.net...
> Bonjour,
> Je la declaration suivante
> Private Declare Function SetCode Lib "SxCode.dll" (ByVal str as String)
as
> Long
>
> et je voudrai appeller cette fonction sous VC++
> typedef long (CALLBACK* SETCODE) (char*);
> SETCODE hSeCode=NULL;
>
> je fais
> try
> {
> m_ResLibrary=::LoadLibrary("SxCode.DLL");
> hSetCode=(SETCODE) ::GetProcAddress(m_ResLibrary, "SetCode");
> char buf[]="Mon code";
> long l=hSetCode(buf);
> }
> catch (...)
> {
>
> }
> -> J'obtiens un Access Violation et je passe dans le catch
>
> Comment faire ?
>
> Merci
>
>
Je viens de refaire le test avec un typage BSTR long l=hSetCode(_bstr_t(buf));
mais j'ai toujours First-chance exception in App.exe (SXCODE.DLL): 0xC0000005: Access Violation.
"Paul Bacelar" wrote in message news:eS%
Un des inconvénient des catchs d'exception c'est que l'on ne connaît pas
la
ligne fautive mais un débuggeur est fort utile. Donc cela serait très sympathique de spécifier la ligne de lever d'exception et pour le même
prix
le type d'exception.
De plus "ByVal str as String" c'est du VB donc le type du paramètre n'est pas char* mais BSTR ou (_bstr_t pour les faignant comme moi).
Faute des informations plus précise, utilise:
typedef long (CALLBACK* SETCODE) (BSTR);
Paul Bacelar
"Olivier" a écrit dans le message de news:bimuo7$ltn$ > Bonjour, > Je la declaration suivante > Private Declare Function SetCode Lib "SxCode.dll" (ByVal str as String)
as
> Long > > et je voudrai appeller cette fonction sous VC++ > typedef long (CALLBACK* SETCODE) (char*); > SETCODE hSeCode=NULL; > > je fais > try > { > m_ResLibrary=::LoadLibrary("SxCode.DLL"); > hSetCode=(SETCODE) ::GetProcAddress(m_ResLibrary, "SetCode"); > char buf[]="Mon code"; > long l=hSetCode(buf); > } > catch (...) > { > > } > -> J'obtiens un Access Violation et je passe dans le catch > > Comment faire ? > > Merci > >
Paul Bacelar
Valeur de hSetCode? pas NULL par hasard. Paul Bacelar "Olivier" a écrit dans le message de news:bin1ji$o9a$
Je viens de refaire le test avec un typage BSTR long l=hSetCode(_bstr_t(buf));
mais j'ai toujours First-chance exception in App.exe (SXCODE.DLL): 0xC0000005: Access Violation.
"Paul Bacelar" wrote in message news:eS% > Un des inconvénient des catchs d'exception c'est que l'on ne connaît pas la > ligne fautive mais un débuggeur est fort utile. Donc cela serait très > sympathique de spécifier la ligne de lever d'exception et pour le même prix > le type d'exception. > > De plus "ByVal str as String" c'est du VB donc le type du paramètre
n'est
> pas char* mais BSTR ou (_bstr_t pour les faignant comme moi). > > Faute des informations plus précise, utilise: > > typedef long (CALLBACK* SETCODE) (BSTR); > > Paul Bacelar > > "Olivier" a écrit dans le message de > news:bimuo7$ltn$ > > Bonjour, > > Je la declaration suivante > > Private Declare Function SetCode Lib "SxCode.dll" (ByVal str as
String)
as > > Long > > > > et je voudrai appeller cette fonction sous VC++ > > typedef long (CALLBACK* SETCODE) (char*); > > SETCODE hSeCode=NULL; > > > > je fais > > try > > { > > m_ResLibrary=::LoadLibrary("SxCode.DLL"); > > hSetCode=(SETCODE) ::GetProcAddress(m_ResLibrary, "SetCode"); > > char buf[]="Mon code"; > > long l=hSetCode(buf); > > } > > catch (...) > > { > > > > } > > -> J'obtiens un Access Violation et je passe dans le catch > > > > Comment faire ? > > > > Merci > > > > > >
Valeur de hSetCode? pas NULL par hasard.
Paul Bacelar
"Olivier" <no-oliv.spam@olivie.fr> a écrit dans le message de
news:bin1ji$o9a$1@s1.read.news.oleane.net...
Je viens de refaire le test avec un typage BSTR
long l=hSetCode(_bstr_t(buf));
mais j'ai toujours First-chance exception in App.exe (SXCODE.DLL):
0xC0000005: Access Violation.
"Paul Bacelar" <bacelar@NOSPAMchez.com> wrote in message
news:eS%23M2DgbDHA.856@tk2msftngp13.phx.gbl...
> Un des inconvénient des catchs d'exception c'est que l'on ne connaît pas
la
> ligne fautive mais un débuggeur est fort utile. Donc cela serait très
> sympathique de spécifier la ligne de lever d'exception et pour le même
prix
> le type d'exception.
>
> De plus "ByVal str as String" c'est du VB donc le type du paramètre
n'est
> pas char* mais BSTR ou (_bstr_t pour les faignant comme moi).
>
> Faute des informations plus précise, utilise:
>
> typedef long (CALLBACK* SETCODE) (BSTR);
>
> Paul Bacelar
>
> "Olivier" <no-oliv.spam@olivie.fr> a écrit dans le message de
> news:bimuo7$ltn$1@s1.read.news.oleane.net...
> > Bonjour,
> > Je la declaration suivante
> > Private Declare Function SetCode Lib "SxCode.dll" (ByVal str as
String)
as
> > Long
> >
> > et je voudrai appeller cette fonction sous VC++
> > typedef long (CALLBACK* SETCODE) (char*);
> > SETCODE hSeCode=NULL;
> >
> > je fais
> > try
> > {
> > m_ResLibrary=::LoadLibrary("SxCode.DLL");
> > hSetCode=(SETCODE) ::GetProcAddress(m_ResLibrary, "SetCode");
> > char buf[]="Mon code";
> > long l=hSetCode(buf);
> > }
> > catch (...)
> > {
> >
> > }
> > -> J'obtiens un Access Violation et je passe dans le catch
> >
> > Comment faire ?
> >
> > Merci
> >
> >
>
>
Valeur de hSetCode? pas NULL par hasard. Paul Bacelar "Olivier" a écrit dans le message de news:bin1ji$o9a$
Je viens de refaire le test avec un typage BSTR long l=hSetCode(_bstr_t(buf));
mais j'ai toujours First-chance exception in App.exe (SXCODE.DLL): 0xC0000005: Access Violation.
"Paul Bacelar" wrote in message news:eS% > Un des inconvénient des catchs d'exception c'est que l'on ne connaît pas la > ligne fautive mais un débuggeur est fort utile. Donc cela serait très > sympathique de spécifier la ligne de lever d'exception et pour le même prix > le type d'exception. > > De plus "ByVal str as String" c'est du VB donc le type du paramètre
n'est
> pas char* mais BSTR ou (_bstr_t pour les faignant comme moi). > > Faute des informations plus précise, utilise: > > typedef long (CALLBACK* SETCODE) (BSTR); > > Paul Bacelar > > "Olivier" a écrit dans le message de > news:bimuo7$ltn$ > > Bonjour, > > Je la declaration suivante > > Private Declare Function SetCode Lib "SxCode.dll" (ByVal str as
String)
as > > Long > > > > et je voudrai appeller cette fonction sous VC++ > > typedef long (CALLBACK* SETCODE) (char*); > > SETCODE hSeCode=NULL; > > > > je fais > > try > > { > > m_ResLibrary=::LoadLibrary("SxCode.DLL"); > > hSetCode=(SETCODE) ::GetProcAddress(m_ResLibrary, "SetCode"); > > char buf[]="Mon code"; > > long l=hSetCode(buf); > > } > > catch (...) > > { > > > > } > > -> J'obtiens un Access Violation et je passe dans le catch > > > > Comment faire ? > > > > Merci > > > > > >
François Müller
Bonjour
"Olivier" escribió en el mensaje
| Je viens de refaire le test avec un typage BSTR | long l=hSetCode(_bstr_t(buf)); | | mais j'ai toujours First-chance exception in App.exe (SXCODE.DLL): | 0xC0000005: Access Violation.
Je vois déjà une bizarrerie : tu fais du try catch, c'est fort bien, mais peut être basiquement commencer à tester si m_reslibrary n'est pas nul avant d'appeler GetProcAddress, et ensuite tester si hSetCode est non nulle avant de l'exécuter comme pointeur de fonction me semble plutôt utile. (surment plus qu'une gestion structurée d'exception ici)
François
Bonjour
"Olivier" <no-oliv.spam@olivie.fr> escribió en el mensaje
| Je viens de refaire le test avec un typage BSTR
| long l=hSetCode(_bstr_t(buf));
|
| mais j'ai toujours First-chance exception in App.exe (SXCODE.DLL):
| 0xC0000005: Access Violation.
Je vois déjà une bizarrerie : tu fais du try catch, c'est fort bien, mais
peut être basiquement commencer à tester si m_reslibrary n'est pas nul avant
d'appeler GetProcAddress, et ensuite tester si hSetCode est non nulle avant
de l'exécuter comme pointeur de fonction me semble plutôt utile. (surment
plus qu'une gestion structurée d'exception ici)
| Je viens de refaire le test avec un typage BSTR | long l=hSetCode(_bstr_t(buf)); | | mais j'ai toujours First-chance exception in App.exe (SXCODE.DLL): | 0xC0000005: Access Violation.
Je vois déjà une bizarrerie : tu fais du try catch, c'est fort bien, mais peut être basiquement commencer à tester si m_reslibrary n'est pas nul avant d'appeler GetProcAddress, et ensuite tester si hSetCode est non nulle avant de l'exécuter comme pointeur de fonction me semble plutôt utile. (surment plus qu'une gestion structurée d'exception ici)
François
François Müller
"Olivier" escribió en el mensaje | Je vous ai mis une simplification de mon code, | le chargement des pointeurs de fonctions de la dll | est faite dans une classe avec tous les tests d'existances du | HMODULE de la dll et de la presence des fonctions.
Ok, ok. As tu par hasard la source de la fonction ? par ce qu'il y a une cht'ite astuce avec VB, il est capable d'aller chercher des fonctions "décorées" ou non (c'est à dire déclarée "extern C" ou directement C++)
| Mon probleme est lors de l'appel de la dll , l'adresse semble | bonne, adresse de la dll en memoire (HMODULE) + RVA | (dispo via dumpbin), par contre le passage de parametres | semble mauvais generation d'une violation d'acces
As tu essayé en modifiant l'appel comme cela ? (hSetCode)( buf);
F.
"Olivier" <no-oliv.spam@olivie.fr> escribió en el mensaje
| Je vous ai mis une simplification de mon code,
| le chargement des pointeurs de fonctions de la dll
| est faite dans une classe avec tous les tests d'existances du
| HMODULE de la dll et de la presence des fonctions.
Ok, ok. As tu par hasard la source de la fonction ? par ce qu'il y a une
cht'ite astuce avec VB, il est capable d'aller chercher des fonctions
"décorées" ou non (c'est à dire déclarée "extern C" ou directement C++)
| Mon probleme est lors de l'appel de la dll , l'adresse semble
| bonne, adresse de la dll en memoire (HMODULE) + RVA
| (dispo via dumpbin), par contre le passage de parametres
| semble mauvais generation d'une violation d'acces
As tu essayé en modifiant l'appel comme cela ? (hSetCode)( buf);
"Olivier" escribió en el mensaje | Je vous ai mis une simplification de mon code, | le chargement des pointeurs de fonctions de la dll | est faite dans une classe avec tous les tests d'existances du | HMODULE de la dll et de la presence des fonctions.
Ok, ok. As tu par hasard la source de la fonction ? par ce qu'il y a une cht'ite astuce avec VB, il est capable d'aller chercher des fonctions "décorées" ou non (c'est à dire déclarée "extern C" ou directement C++)
| Mon probleme est lors de l'appel de la dll , l'adresse semble | bonne, adresse de la dll en memoire (HMODULE) + RVA | (dispo via dumpbin), par contre le passage de parametres | semble mauvais generation d'une violation d'acces
As tu essayé en modifiant l'appel comme cela ? (hSetCode)( buf);
F.
Paul Bacelar
L'allocation de la chaine utilise t'elle SysAllocString. Je pense au runtime VB incompatible avec les libC. Paul Bacelar "Olivier" a écrit dans le message de news:binh0n$78t$
Je vous ai mis une simplification de mon code, le chargement des pointeurs de fonctions de la dll est faite dans une classe avec tous les tests d'existances du HMODULE de la dll et de la presence des fonctions. Mon probleme est lors de l'appel de la dll , l'adresse semble bonne, adresse de la dll en memoire (HMODULE) + RVA (dispo via dumpbin), par contre le passage de parametres semble mauvais generation d'une violation d'acces
> "Olivier" escribió en el mensaje > > | Je viens de refaire le test avec un typage BSTR > | long l=hSetCode(_bstr_t(buf)); > | > | mais j'ai toujours First-chance exception in App.exe (SXCODE.DLL): > | 0xC0000005: Access Violation. > > Je vois déjà une bizarrerie : tu fais du try catch, c'est fort bien,
mais
> peut être basiquement commencer à tester si m_reslibrary n'est pas nul avant > d'appeler GetProcAddress, et ensuite tester si hSetCode est non nulle avant > de l'exécuter comme pointeur de fonction me semble plutôt utile.
(surment
> plus qu'une gestion structurée d'exception ici) > > François > >
L'allocation de la chaine utilise t'elle SysAllocString.
Je pense au runtime VB incompatible avec les libC.
Paul Bacelar
"Olivier" <no-oliv.spam@olivie.fr> a écrit dans le message de
news:binh0n$78t$1@s1.read.news.oleane.net...
Je vous ai mis une simplification de mon code,
le chargement des pointeurs de fonctions de la dll
est faite dans une classe avec tous les tests d'existances du
HMODULE de la dll et de la presence des fonctions.
Mon probleme est lors de l'appel de la dll , l'adresse semble
bonne, adresse de la dll en memoire (HMODULE) + RVA
(dispo via dumpbin), par contre le passage de parametres
semble mauvais generation d'une violation d'acces
> "Olivier" <no-oliv.spam@olivie.fr> escribió en el mensaje
>
> | Je viens de refaire le test avec un typage BSTR
> | long l=hSetCode(_bstr_t(buf));
> |
> | mais j'ai toujours First-chance exception in App.exe (SXCODE.DLL):
> | 0xC0000005: Access Violation.
>
> Je vois déjà une bizarrerie : tu fais du try catch, c'est fort bien,
mais
> peut être basiquement commencer à tester si m_reslibrary n'est pas nul
avant
> d'appeler GetProcAddress, et ensuite tester si hSetCode est non nulle
avant
> de l'exécuter comme pointeur de fonction me semble plutôt utile.
(surment
> plus qu'une gestion structurée d'exception ici)
>
> François
>
>
L'allocation de la chaine utilise t'elle SysAllocString. Je pense au runtime VB incompatible avec les libC. Paul Bacelar "Olivier" a écrit dans le message de news:binh0n$78t$
Je vous ai mis une simplification de mon code, le chargement des pointeurs de fonctions de la dll est faite dans une classe avec tous les tests d'existances du HMODULE de la dll et de la presence des fonctions. Mon probleme est lors de l'appel de la dll , l'adresse semble bonne, adresse de la dll en memoire (HMODULE) + RVA (dispo via dumpbin), par contre le passage de parametres semble mauvais generation d'une violation d'acces
> "Olivier" escribió en el mensaje > > | Je viens de refaire le test avec un typage BSTR > | long l=hSetCode(_bstr_t(buf)); > | > | mais j'ai toujours First-chance exception in App.exe (SXCODE.DLL): > | 0xC0000005: Access Violation. > > Je vois déjà une bizarrerie : tu fais du try catch, c'est fort bien,
mais
> peut être basiquement commencer à tester si m_reslibrary n'est pas nul avant > d'appeler GetProcAddress, et ensuite tester si hSetCode est non nulle avant > de l'exécuter comme pointeur de fonction me semble plutôt utile.
(surment
> plus qu'une gestion structurée d'exception ici) > > François > >
François Müller
"Paul Bacelar" escribió en el mensaje | L'allocation de la chaine utilise t'elle SysAllocString. | Je pense au runtime VB incompatible avec les libC.
La DLL n'est pas une DLL VB : les DLLs VB ne peuvent pas exporter de fonctions, seulement des objets ActiveX/COM
François
"Paul Bacelar" <bacelar@NOSPAMchez.com> escribió en el mensaje
| L'allocation de la chaine utilise t'elle SysAllocString.
| Je pense au runtime VB incompatible avec les libC.
La DLL n'est pas une DLL VB : les DLLs VB ne peuvent pas exporter de
fonctions, seulement des objets ActiveX/COM
"Paul Bacelar" escribió en el mensaje | L'allocation de la chaine utilise t'elle SysAllocString. | Je pense au runtime VB incompatible avec les libC.
La DLL n'est pas une DLL VB : les DLLs VB ne peuvent pas exporter de fonctions, seulement des objets ActiveX/COM
François
Olivier
> | Je vous ai mis une simplification de mon code, | le chargement des pointeurs de fonctions de la dll | est faite dans une classe avec tous les tests d'existances du | HMODULE de la dll et de la presence des fonctions.
Ok, ok. As tu par hasard la source de la fonction ? par ce qu'il y a une cht'ite astuce avec VB, il est capable d'aller chercher des fonctions "décorées" ou non (c'est à dire déclarée "extern C" ou directement C++)
je n'ai pas les sources de la fonction, je ne sais pas sous quel language elle a ete developpée via Depency Walker je sais que ca ete linké avec Linker Ver 2.52
on m'a juste donné un sample en VB avec cette declarartion Private Declare Function SetCode Lib "SxCode.dll" (ByVal str as String) as Long
| Mon probleme est lors de l'appel de la dll , l'adresse semble | bonne, adresse de la dll en memoire (HMODULE) + RVA | (dispo via dumpbin), par contre le passage de parametres | semble mauvais generation d'une violation d'acces
As tu essayé en modifiant l'appel comme cela ? (hSetCode)( buf);
Toujours access violation :-(((
> | Je vous ai mis une simplification de mon code,
| le chargement des pointeurs de fonctions de la dll
| est faite dans une classe avec tous les tests d'existances du
| HMODULE de la dll et de la presence des fonctions.
Ok, ok. As tu par hasard la source de la fonction ? par ce qu'il y a une
cht'ite astuce avec VB, il est capable d'aller chercher des fonctions
"décorées" ou non (c'est à dire déclarée "extern C" ou directement C++)
je n'ai pas les sources de la fonction, je ne sais pas sous quel language
elle
a ete developpée
via Depency Walker je sais que ca ete linké avec Linker Ver 2.52
on m'a juste donné un sample en VB avec cette declarartion
Private Declare Function SetCode Lib "SxCode.dll" (ByVal str as String) as
Long
| Mon probleme est lors de l'appel de la dll , l'adresse semble
| bonne, adresse de la dll en memoire (HMODULE) + RVA
| (dispo via dumpbin), par contre le passage de parametres
| semble mauvais generation d'une violation d'acces
As tu essayé en modifiant l'appel comme cela ? (hSetCode)( buf);
> | Je vous ai mis une simplification de mon code, | le chargement des pointeurs de fonctions de la dll | est faite dans une classe avec tous les tests d'existances du | HMODULE de la dll et de la presence des fonctions.
Ok, ok. As tu par hasard la source de la fonction ? par ce qu'il y a une cht'ite astuce avec VB, il est capable d'aller chercher des fonctions "décorées" ou non (c'est à dire déclarée "extern C" ou directement C++)
je n'ai pas les sources de la fonction, je ne sais pas sous quel language elle a ete developpée via Depency Walker je sais que ca ete linké avec Linker Ver 2.52
on m'a juste donné un sample en VB avec cette declarartion Private Declare Function SetCode Lib "SxCode.dll" (ByVal str as String) as Long
| Mon probleme est lors de l'appel de la dll , l'adresse semble | bonne, adresse de la dll en memoire (HMODULE) + RVA | (dispo via dumpbin), par contre le passage de parametres | semble mauvais generation d'une violation d'acces
As tu essayé en modifiant l'appel comme cela ? (hSetCode)( buf);
Toujours access violation :-(((
Olivier
les dependances de la dll sont ADVAPI32.DLL GDI32.DLL KERNEL32.DLL NTDLL.DLL OLE32.DLL OLEAUT32.DLL rpcrt4.dll USER32.DLL pas de trace de msvbvm60.dll
"Paul Bacelar" wrote in message news:
L'allocation de la chaine utilise t'elle SysAllocString. Je pense au runtime VB incompatible avec les libC. Paul Bacelar "Olivier" a écrit dans le message de news:binh0n$78t$ > Je vous ai mis une simplification de mon code, > le chargement des pointeurs de fonctions de la dll > est faite dans une classe avec tous les tests d'existances du > HMODULE de la dll et de la presence des fonctions. > Mon probleme est lors de l'appel de la dll , l'adresse semble > bonne, adresse de la dll en memoire (HMODULE) + RVA > (dispo via dumpbin), par contre le passage de parametres > semble mauvais generation d'une violation d'acces > > > > "Olivier" escribió en el mensaje > > > > | Je viens de refaire le test avec un typage BSTR > > | long l=hSetCode(_bstr_t(buf)); > > | > > | mais j'ai toujours First-chance exception in App.exe (SXCODE.DLL): > > | 0xC0000005: Access Violation. > > > > Je vois déjà une bizarrerie : tu fais du try catch, c'est fort bien, mais > > peut être basiquement commencer à tester si m_reslibrary n'est pas nul > avant > > d'appeler GetProcAddress, et ensuite tester si hSetCode est non nulle > avant > > de l'exécuter comme pointeur de fonction me semble plutôt utile. (surment > > plus qu'une gestion structurée d'exception ici) > > > > François > > > > > >
les dependances de la dll sont
ADVAPI32.DLL
GDI32.DLL
KERNEL32.DLL
NTDLL.DLL
OLE32.DLL
OLEAUT32.DLL
rpcrt4.dll
USER32.DLL pas de trace de msvbvm60.dll
"Paul Bacelar" <bacelar@NOSPAMchez.com> wrote in message
news:upwoi4ibDHA.2580@TK2MSFTNGP12.phx.gbl...
L'allocation de la chaine utilise t'elle SysAllocString.
Je pense au runtime VB incompatible avec les libC.
Paul Bacelar
"Olivier" <no-oliv.spam@olivie.fr> a écrit dans le message de
news:binh0n$78t$1@s1.read.news.oleane.net...
> Je vous ai mis une simplification de mon code,
> le chargement des pointeurs de fonctions de la dll
> est faite dans une classe avec tous les tests d'existances du
> HMODULE de la dll et de la presence des fonctions.
> Mon probleme est lors de l'appel de la dll , l'adresse semble
> bonne, adresse de la dll en memoire (HMODULE) + RVA
> (dispo via dumpbin), par contre le passage de parametres
> semble mauvais generation d'une violation d'acces
>
>
> > "Olivier" <no-oliv.spam@olivie.fr> escribió en el mensaje
> >
> > | Je viens de refaire le test avec un typage BSTR
> > | long l=hSetCode(_bstr_t(buf));
> > |
> > | mais j'ai toujours First-chance exception in App.exe (SXCODE.DLL):
> > | 0xC0000005: Access Violation.
> >
> > Je vois déjà une bizarrerie : tu fais du try catch, c'est fort bien,
mais
> > peut être basiquement commencer à tester si m_reslibrary n'est pas nul
> avant
> > d'appeler GetProcAddress, et ensuite tester si hSetCode est non nulle
> avant
> > de l'exécuter comme pointeur de fonction me semble plutôt utile.
(surment
> > plus qu'une gestion structurée d'exception ici)
> >
> > François
> >
> >
>
>
les dependances de la dll sont ADVAPI32.DLL GDI32.DLL KERNEL32.DLL NTDLL.DLL OLE32.DLL OLEAUT32.DLL rpcrt4.dll USER32.DLL pas de trace de msvbvm60.dll
"Paul Bacelar" wrote in message news:
L'allocation de la chaine utilise t'elle SysAllocString. Je pense au runtime VB incompatible avec les libC. Paul Bacelar "Olivier" a écrit dans le message de news:binh0n$78t$ > Je vous ai mis une simplification de mon code, > le chargement des pointeurs de fonctions de la dll > est faite dans une classe avec tous les tests d'existances du > HMODULE de la dll et de la presence des fonctions. > Mon probleme est lors de l'appel de la dll , l'adresse semble > bonne, adresse de la dll en memoire (HMODULE) + RVA > (dispo via dumpbin), par contre le passage de parametres > semble mauvais generation d'une violation d'acces > > > > "Olivier" escribió en el mensaje > > > > | Je viens de refaire le test avec un typage BSTR > > | long l=hSetCode(_bstr_t(buf)); > > | > > | mais j'ai toujours First-chance exception in App.exe (SXCODE.DLL): > > | 0xC0000005: Access Violation. > > > > Je vois déjà une bizarrerie : tu fais du try catch, c'est fort bien, mais > > peut être basiquement commencer à tester si m_reslibrary n'est pas nul > avant > > d'appeler GetProcAddress, et ensuite tester si hSetCode est non nulle > avant > > de l'exécuter comme pointeur de fonction me semble plutôt utile. (surment > > plus qu'une gestion structurée d'exception ici) > > > > François > > > > > >
Paul Bacelar
et mon SysAllocString. Paul Bacelar "Olivier" a écrit dans le message de news:binlka$aba$
les dependances de la dll sont ADVAPI32.DLL GDI32.DLL KERNEL32.DLL NTDLL.DLL OLE32.DLL OLEAUT32.DLL rpcrt4.dll USER32.DLL pas de trace de msvbvm60.dll
"Paul Bacelar" wrote in message news: > L'allocation de la chaine utilise t'elle SysAllocString. > Je pense au runtime VB incompatible avec les libC. > Paul Bacelar > "Olivier" a écrit dans le message de > news:binh0n$78t$ > > Je vous ai mis une simplification de mon code, > > le chargement des pointeurs de fonctions de la dll > > est faite dans une classe avec tous les tests d'existances du > > HMODULE de la dll et de la presence des fonctions. > > Mon probleme est lors de l'appel de la dll , l'adresse semble > > bonne, adresse de la dll en memoire (HMODULE) + RVA > > (dispo via dumpbin), par contre le passage de parametres > > semble mauvais generation d'une violation d'acces > > > > > > > "Olivier" escribió en el mensaje > > > > > > | Je viens de refaire le test avec un typage BSTR > > > | long l=hSetCode(_bstr_t(buf)); > > > | > > > | mais j'ai toujours First-chance exception in App.exe (SXCODE.DLL): > > > | 0xC0000005: Access Violation. > > > > > > Je vois déjà une bizarrerie : tu fais du try catch, c'est fort bien, > mais > > > peut être basiquement commencer à tester si m_reslibrary n'est pas
nul
> > avant > > > d'appeler GetProcAddress, et ensuite tester si hSetCode est non
nulle
> > avant > > > de l'exécuter comme pointeur de fonction me semble plutôt utile. > (surment > > > plus qu'une gestion structurée d'exception ici) > > > > > > François > > > > > > > > > > > >
et mon SysAllocString.
Paul Bacelar
"Olivier" <no-oliv.spam@olivie.fr> a écrit dans le message de
news:binlka$aba$1@s1.read.news.oleane.net...
les dependances de la dll sont
ADVAPI32.DLL
GDI32.DLL
KERNEL32.DLL
NTDLL.DLL
OLE32.DLL
OLEAUT32.DLL
rpcrt4.dll
USER32.DLL pas de trace de msvbvm60.dll
"Paul Bacelar" <bacelar@NOSPAMchez.com> wrote in message
news:upwoi4ibDHA.2580@TK2MSFTNGP12.phx.gbl...
> L'allocation de la chaine utilise t'elle SysAllocString.
> Je pense au runtime VB incompatible avec les libC.
> Paul Bacelar
> "Olivier" <no-oliv.spam@olivie.fr> a écrit dans le message de
> news:binh0n$78t$1@s1.read.news.oleane.net...
> > Je vous ai mis une simplification de mon code,
> > le chargement des pointeurs de fonctions de la dll
> > est faite dans une classe avec tous les tests d'existances du
> > HMODULE de la dll et de la presence des fonctions.
> > Mon probleme est lors de l'appel de la dll , l'adresse semble
> > bonne, adresse de la dll en memoire (HMODULE) + RVA
> > (dispo via dumpbin), par contre le passage de parametres
> > semble mauvais generation d'une violation d'acces
> >
> >
> > > "Olivier" <no-oliv.spam@olivie.fr> escribió en el mensaje
> > >
> > > | Je viens de refaire le test avec un typage BSTR
> > > | long l=hSetCode(_bstr_t(buf));
> > > |
> > > | mais j'ai toujours First-chance exception in App.exe (SXCODE.DLL):
> > > | 0xC0000005: Access Violation.
> > >
> > > Je vois déjà une bizarrerie : tu fais du try catch, c'est fort bien,
> mais
> > > peut être basiquement commencer à tester si m_reslibrary n'est pas
nul
> > avant
> > > d'appeler GetProcAddress, et ensuite tester si hSetCode est non
nulle
> > avant
> > > de l'exécuter comme pointeur de fonction me semble plutôt utile.
> (surment
> > > plus qu'une gestion structurée d'exception ici)
> > >
> > > François
> > >
> > >
> >
> >
>
>
et mon SysAllocString. Paul Bacelar "Olivier" a écrit dans le message de news:binlka$aba$
les dependances de la dll sont ADVAPI32.DLL GDI32.DLL KERNEL32.DLL NTDLL.DLL OLE32.DLL OLEAUT32.DLL rpcrt4.dll USER32.DLL pas de trace de msvbvm60.dll
"Paul Bacelar" wrote in message news: > L'allocation de la chaine utilise t'elle SysAllocString. > Je pense au runtime VB incompatible avec les libC. > Paul Bacelar > "Olivier" a écrit dans le message de > news:binh0n$78t$ > > Je vous ai mis une simplification de mon code, > > le chargement des pointeurs de fonctions de la dll > > est faite dans une classe avec tous les tests d'existances du > > HMODULE de la dll et de la presence des fonctions. > > Mon probleme est lors de l'appel de la dll , l'adresse semble > > bonne, adresse de la dll en memoire (HMODULE) + RVA > > (dispo via dumpbin), par contre le passage de parametres > > semble mauvais generation d'une violation d'acces > > > > > > > "Olivier" escribió en el mensaje > > > > > > | Je viens de refaire le test avec un typage BSTR > > > | long l=hSetCode(_bstr_t(buf)); > > > | > > > | mais j'ai toujours First-chance exception in App.exe (SXCODE.DLL): > > > | 0xC0000005: Access Violation. > > > > > > Je vois déjà une bizarrerie : tu fais du try catch, c'est fort bien, > mais > > > peut être basiquement commencer à tester si m_reslibrary n'est pas
nul
> > avant > > > d'appeler GetProcAddress, et ensuite tester si hSetCode est non
nulle
> > avant > > > de l'exécuter comme pointeur de fonction me semble plutôt utile. > (surment > > > plus qu'une gestion structurée d'exception ici) > > > > > > François > > > > > > > > > > > >