En un programa accidentalmente llamé closeHandle()
dos veces en un controlador mutex (cerrando el mango que ya estaba cerrado).¿Se producen ciertos errores de excepción solo en el depurador?
Al ejecutar el código en el depurador, recibí el error de excepción An invalid HANDLE was specified.
como se esperaba.
Sin embargo, al ejecutar el programa "normalmente" como independiente (fuera del depurador) la excepción no aparece o cualquier otro error. El programa parece ejecutarse normalmente.
¿Es esto solo una configuración en Visual Studio .NET 2003 o hay más detrás de esto?
Ese comportamiento documentado de closeHandle(). Consulte http://msdn.microsoft.com/en-us/library/ms724211%28v=vs.85%29.aspx: "Si la aplicación se ejecuta con un depurador, la función generará una excepción si recibe una manejar el valor que no es válido o un valor de pseudo-handle ". – user168715
Quizás esté ejecutando la compilación de depuración en VS .NET, pero cuando hace doble clic está ejecutando la compilación de lanzamiento. –
He visto un comportamiento similar con los asertos. La compilación condicional podría hacerlo. –