Problèmes de DLL

cs_LeGuepard Messages postés 38 Date d'inscription mardi 16 septembre 2003 Statut Membre Dernière intervention 7 septembre 2015 - 7 oct. 2004 à 01:21
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 - 7 oct. 2004 à 23:00
Bonjour à tous,

J'ai quelques petits problèmes de DLL. En fait j'ai remarque que deux de mes dll avait un bug commun, à savoir qu'elles déforme des chaines de caractères.

- La première contient une fonction qui à pour but de lire une chaine contenue des les registres de Windows représentant le chemin d'acces d'un répertoire et de la renvoyer vers mon application. Hors, lorsque la chaine arrive dans mon programme, elle est déformée et par conséquent puisqu'elle représente le chemin d'acces du répertoire contenant mes Bases de données, mon application plante.

- La deuxième contient deux fonctions de cryptage et de décryptage. Lorsque de fait appel à ma fonction de cryptage en lui transmettant la chaine de caractères original, celle-ci me renvoie une autre chaine de caractères cryptée. Si maintenant je trasmets cette dernière à la fonction de décryptage, celle-ci doit me retourner une chaine de caractères identique à la chaine original. Hors, parfois cette chaine est également déformée. La plupart du temps, le décryptage est correcte mais par exemple, avec tout les mot se tarminant par "main" comme par exemple "demain", j'ai en retourne quelque chose comme "demaj|".

J'ai alors eu l'envie de pousser mon enquête une peu plus loin pour savoir forcément d'où pouvait venir ce bug. J'ai alors décidé de mettre directement les codes source de mes fonctions, que ce soit celles de lecture des registres ou celles de cryptage, dans mes sources des applications, et là tout fonctionne correctement.

Le problème viens donc bien de mes librairies. Poutant, j'effectue bien le passage des mais chaines de caractères non pas par variables de type "String" mais par des variabkes de type "Pchar".

Alors comme je ne vois vraiment pas comment résoudre ce problème, j'ai donc eu envie de demander à bien plis malin que moi, c'est donc pour cela que je vous pose mes très chers amis cette question.

Voilà, j'espère n'avoir pas été trop long dans mon roman lol, et à tous ceux que ne se sont pas encore endormi en lisant mon histoire, et bien je ne demande qu'une chose, si quelqu'un à une solution, merci de me la faire connaitre!

Merci d'avance.

A Bientôt,

LeGuepard.

2 réponses

jmp77 Messages postés 1119 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 4 octobre 2006 7
7 oct. 2004 à 09:07
Salut,

Et si essayes avec tu shortstring ou du ansistring est ce que le phenomene est le meme?

Bonne prog,
JMP.
0
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
7 oct. 2004 à 23:00
Es-tu sûr de bien réserver de l'espace pour tes chaines quand tu utilises des PChar ?
N'oublie pas de réserver autant d'octets que de caractères PLUS un octet pour le caractère nul (#0) qui doit terminer O-BLI-GA-TOI-RE-MENT les chaines.

Sinon, gare aux plantages...ou lecture de zones mémoires au hasard.
Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
May Delphi be with you
0
Rejoignez-nous