Comment désactiver le débordement de la mémoire tampon de vérification de l'Exécution Visual C++?
j', et un quelques milliers d'autres personnes, obtenez une erreur est générée par le Microsoft Visual C++ Runtime:
le texte d'alt http://i46.tinypic.com/2enceus.png
Qui, pour le bénéfice des moteurs de recherche, dit:
Microsoft Visual C++ Runtime Library
Buffer overrun detected!
Program: %s
A buffer overrun has been detected which has corrupted the program's
internal state. The program cannot safely continue execution and must
now be terminated.
Je comprends maintenant ce qu'est un dépassement de la mémoire tampon, et pourquoi c'est une mauvaise chose. Compte tenu de Microsoft, à nouveau l'accent sur le "c'est juste cassé", le tampon supplémentaire vérifie dans MSVCRT peut être une bonne chose.
D'autre part, je n'ai pas de soins. Ce n'est pas que le programme ne peut pas continuer, c'est que le programme ne peut pas en toute sécurité continuer. Eh bien, je préfère être dangereux, parce que c'est mieux que rien. j'aime vivre dangereusement.
Si quelqu'un peut suggérer quelque chose? je pensais à des choses comme:
- une clé de registre pour empêcher MSVCRT de l'arrêt de l'exécution
- l'exécution de l'application en comptabilité avec un système d'exploitation précédent (version antérieure à Windows 7)
- l'ajout d'un manifeste d'assembly pour le dossier exécutable de sorte qu'il utilise une ancienne version de la MSVCRT, celui qui ne pas effectuer cette vérification de dépassement
- un numéro de version, ou un emplacement de téléchargement, d'une copie de MSVCRT qui n'ont pas la vérification de dépassement
j'ai essayé de chercher le site de support de la société qui a écrit le Microsoft Visual C++ Runtime Library, mais ils n'ont pas de mention de fonctions qui pourraient être débordant, ou comment désactiver la vérification de dépassement.
OriginalL'auteur Ian Boyd | 2009-11-18
Vous devez vous connecter pour publier un commentaire.
Il y a une option ici. Jeu de il pas.
Propriétés du projet -> Propriétés de Configuration -> C/C++ -> Génération de Code -> Tampon de contrôle de Sécurité.
Cela correspond à la /GS (Tampon de Vérification de la Sécurité) option de compilateur:
OriginalL'auteur Daniel A. White
Est-ce qui se passe en vous code ou en fait dans la bibliothèque? Si c'est dans la bibliothèque, je sais que vous dites que vous voulez tout simplement ignorer l'erreur, mais ce que vous feriez vous si c'était une violation d'accès qui s'est écrasé le processus?
Vous devez le traiter de la même façon, parce que logiquement c'est la même chose. C'est juste le CRT est le plantage du processus au lieu de l'OS.
Mais, Si vous utilisez la version de débogage de la bibliothèque, vous pouvez obtenir le meilleur (?) les résultats à l'aide de la version de publication (peut-être qu'il va tout simplement se bloquer sans la boîte de dialogue de notification).
Si c'est dans votre code, vous pouvez désactiver le dépassement de vérifier à l'aide de la /GS - option. Mais vous devriez vraiment corriger le bug.
Jeez - c'est toujours quelque chose... je n'ai rien eu.
OriginalL'auteur Michael Burr