J'ai une chaîne que j'ai obscurcie dans mon code, en XORing chaque caractère par une valeur aléatoire. Toutefois, le littéral de chaîne brute multi-lignes résultant ne compilera pas correctement.C++: Une chaîne XOR'd avec des caractères spéciaux ne sera pas compilée en tant que chaîne littérale brute?
Dans l'image suivante, vous pouvez voir comment MSVS2015 n'analyse pas la chaîne correctement, même en utilisant des délimiteurs appropriés à chaque extrémité (notez le texte en noir, sans être analysé en tant que partie de la chaîne). Essayer de compiler le code entraîne des erreurs sur le fait de ne pas pouvoir trouver l'accolade fermante du littéral (même si c'est à la bonne place, à la toute fin de la chaîne après le délimiteur de fermeture, etc.). L'effacement manuel des bits noirs entraîne une compilation correcte (bien qu'avec une chaîne qui ne peut plus être correctement désembrouillée, bien sûr).
Je suppose que ce qui se passe parce que différents personnages résultant de la fonction XOR ne peut pas être correctement enregistrées dans le fichier .h. Y at-il une solution à ce problème? J'ai essayé de passer le format de fichier à Unicode mais cela n'a pas fonctionné.
Veuillez ne pas afficher l'écran d'impression du code. – bolov
Peut-être que vous devriez envisager une autre façon d'encoder votre chaîne? Peut-être une sorte de schéma d'encodage hexadécimal ou quelque chose qui aboutit à des caractères ASCII simples? Et bien sûr, assurez-vous que le littéral de chaîne n'est pas [à long] (https://msdn.microsoft.com/en-us/library/sx08afx2.aspx). –
@ user23573 Il utilise des chaînes brutes. échapper des caractères n'est pas un problème – bolov