2009-03-12 6 views
1

J'ai crypté du texte et l'ai placé dans un fichier INI. Ensuite, j'ai utilisé getprivateprofilestring() pour récupérer la valeur, mais certains des caractères de fin sont manquants. Je soupçonne qu'il peut s'agir d'un nouveau caractère de ligne le rendant incomplet. L'écriture dans le fichier INI est OK. Ouvrir le fichier INI et regarder les sections et les clés - tout est en ordre. C'est juste la partie de récupération qui provoque le bug.Getprivateprofilestring Bogue

S'il vous plaît toute aide serait appréciée.

Merci Eddie

+0

Un exemple de code et/ou la section de problème de l'ini aiderait. – AnthonyWJones

+0

Oui, sans cela, nous ne pouvons pas faire grand-chose. – MarkJ

Répondre

0

WritePrivateProfileStringW écrit les fichiers dans la page de code ANSI actif par défaut; WritePrivateProfileStringA écrit toujours ANSI.

Pour obtenir les meilleurs résultats, suivez les instructions here et utiliser GetPrivateProfileStringW lors de la lecture des données en arrière

1

Tout d'abord lors du cryptage des chaînes, assurez-vous qu'ils sont convertis en base64 avant de les jeter dans le fichier INI. Il est très probable que la chaîne cryptée ait créé un caractère ASCII qui n'est pas très bien géré par les API liées à INI.

0

Il est plus que probable que le cryptage injecte un caractère NULL dans le flux que vous écrivez. GetPrivateProfileString lira une chaîne jusqu'à ce qu'il trouve un caractère NULL. Donc, je suis d'accord avec Angry Hacker, convertir en base64 ou un autre codage humain lisible et vous n'aurez aucun problème.