Un client m'a remis une dll qui contient une fonction permettant de crypter
un mot de passe.
On passe un Char à la fonction et cela renvoi un Char.
Jusque la rien de compliqué. Hors je n'arrive pas à le faire fonctionner
Apres plusieurs jours (oui!) de recherche infructueuse, je me tourne vers ce
NG.
J'aimerai faire cela en C / C++
Le code suivant est tiré de Win32.hlp et il plante lamentablement.
Une idée pour l'adapter de façon à envoyer un char et recupérer le char de
la fonction ?
/* If the handle is valid, try to get the function address. */
if (hinstLib != NULL) {
ProcAdd = (MYPROC) GetProcAddress(hinstLib, "mafonction");
/* If the function address is valid, call the function. */
if (fRunTimeLinkSuccess = (ProcAdd != NULL))
(ProcAdd) ("message via DLL function\n");
printf("ProcAdd = %i",ProcAdd);
/* Free the DLL module. */
fFreeResult = FreeLibrary(hinstLib);
}
/* If unable to call the DLL function, use an alternative. */
if (! fRunTimeLinkSuccess)
printf("message via alternative method\n");
}
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
Patrick Philippot
Bonjour,
On passe un Char à la fonction et cela renvoi un Char.
Alors le prototype que vous indiquez dans l'exemple ne correspond pas. A moins que vous ne parliez de char*. Mais de toute façon votre prototype décrit une fonction qui retourne VOID, pas une chaîne de caractères.
typedef VOID (*MYPROC)(LPTSTR);
Plutôt
typedef LPSTR (*MYPROC)(LPTSTR);
Non? Ou alors l'argument est de type in/out: la chaîne est modifiée in situ?
La DLL vient certainement avec un fichier include. Peut-on le voir?
Le code suivant est tiré de Win32.hlp et il plante lamentablement.
Où? Comment? Quel message d'erreur? Nous ne pouvons pas vous aider si vous ne nous donnez pas les infos nécessaires. On ne le répètera jamais assez: "Ça ne marche pas." n'est pas une information utile :-)) .
-- Patrick Philippot - Microsoft MVP MainSoft Consulting Services www.mainsoft.fr
Bonjour,
On passe un Char à la fonction et cela renvoi un Char.
Alors le prototype que vous indiquez dans l'exemple ne correspond pas. A
moins que vous ne parliez de char*. Mais de toute façon votre prototype
décrit une fonction qui retourne VOID, pas une chaîne de caractères.
typedef VOID (*MYPROC)(LPTSTR);
Plutôt
typedef LPSTR (*MYPROC)(LPTSTR);
Non? Ou alors l'argument est de type in/out: la chaîne est modifiée in situ?
La DLL vient certainement avec un fichier include. Peut-on le voir?
Le code suivant est tiré de Win32.hlp et il plante lamentablement.
Où? Comment? Quel message d'erreur? Nous ne pouvons pas vous aider si vous
ne nous donnez pas les infos nécessaires. On ne le répètera jamais assez:
"Ça ne marche pas." n'est pas une information utile :-)) .
--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr
On passe un Char à la fonction et cela renvoi un Char.
Alors le prototype que vous indiquez dans l'exemple ne correspond pas. A moins que vous ne parliez de char*. Mais de toute façon votre prototype décrit une fonction qui retourne VOID, pas une chaîne de caractères.
typedef VOID (*MYPROC)(LPTSTR);
Plutôt
typedef LPSTR (*MYPROC)(LPTSTR);
Non? Ou alors l'argument est de type in/out: la chaîne est modifiée in situ?
La DLL vient certainement avec un fichier include. Peut-on le voir?
Le code suivant est tiré de Win32.hlp et il plante lamentablement.
Où? Comment? Quel message d'erreur? Nous ne pouvons pas vous aider si vous ne nous donnez pas les infos nécessaires. On ne le répètera jamais assez: "Ça ne marche pas." n'est pas une information utile :-)) .
-- Patrick Philippot - Microsoft MVP MainSoft Consulting Services www.mainsoft.fr
Patrick Philippot
Bonjour,
On passe un Char à la fonction et cela renvoi un Char.
Alors le prototype que vous indiquez dans l'exemple ne correspond pas. A moins que vous ne parliez de char*. Mais de toute façon votre prototype décrit une fonction qui retourne VOID, pas une chaîne de caractères.
typedef VOID (*MYPROC)(LPTSTR);
Plutôt
typedef LPSTR (*MYPROC)(LPTSTR);
Non? Ou alors l'argument est de type in/out: la chaîne est modifiée in situ?
La DLL vient certainement avec un fichier include. Peut-on le voir?
Le code suivant est tiré de Win32.hlp et il plante lamentablement.
Où? Comment? Quel message d'erreur? Nous ne pouvons pas vous aider si vous ne nous donnez pas les infos nécessaires. On ne le répètera jamais assez: "Ça ne marche pas." n'est pas une information utile :-)) .
-- Patrick Philippot - Microsoft MVP MainSoft Consulting Services www.mainsoft.fr
Bonjour,
On passe un Char à la fonction et cela renvoi un Char.
Alors le prototype que vous indiquez dans l'exemple ne correspond pas. A
moins que vous ne parliez de char*. Mais de toute façon votre prototype
décrit une fonction qui retourne VOID, pas une chaîne de caractères.
typedef VOID (*MYPROC)(LPTSTR);
Plutôt
typedef LPSTR (*MYPROC)(LPTSTR);
Non? Ou alors l'argument est de type in/out: la chaîne est modifiée in situ?
La DLL vient certainement avec un fichier include. Peut-on le voir?
Le code suivant est tiré de Win32.hlp et il plante lamentablement.
Où? Comment? Quel message d'erreur? Nous ne pouvons pas vous aider si vous
ne nous donnez pas les infos nécessaires. On ne le répètera jamais assez:
"Ça ne marche pas." n'est pas une information utile :-)) .
--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr
On passe un Char à la fonction et cela renvoi un Char.
Alors le prototype que vous indiquez dans l'exemple ne correspond pas. A moins que vous ne parliez de char*. Mais de toute façon votre prototype décrit une fonction qui retourne VOID, pas une chaîne de caractères.
typedef VOID (*MYPROC)(LPTSTR);
Plutôt
typedef LPSTR (*MYPROC)(LPTSTR);
Non? Ou alors l'argument est de type in/out: la chaîne est modifiée in situ?
La DLL vient certainement avec un fichier include. Peut-on le voir?
Le code suivant est tiré de Win32.hlp et il plante lamentablement.
Où? Comment? Quel message d'erreur? Nous ne pouvons pas vous aider si vous ne nous donnez pas les infos nécessaires. On ne le répètera jamais assez: "Ça ne marche pas." n'est pas une information utile :-)) .
-- Patrick Philippot - Microsoft MVP MainSoft Consulting Services www.mainsoft.fr