es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Los encabezados de WinRT fallan PREfast debido a C6101 en WindowsNumerics.inl.

Activar las comprobaciones de análisis estático PREfast en un proyecto existente me ha dado muchos casos de lo siguiente:

C:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\um\WindowsNumerics.inl(2375) : advertencia C6101: Devolviendo memoria no inicializada ‘*scale’. Un camino exitoso a través de la función no establece el parámetro de salida nombrado. Anote esta función con Success(return) si devolver FALSE indica un fallo.: Líneas: 2375, 2379, 2381, 2383, 2375

Esto puede ser desencadenado por incluir cualquiera de los siguientes encabezados:

#include <winrt windows.storage.fileproperties.h="">
#include <winrt windows.media.capture.h="">
#include <winrt windows.storage.h="">
#include <winrt windows.foundation.collections.h="">
#include <winrt windows.data.json.h="">

pero todas las instancias que he visto hasta ahora parecen ser comunes a WindowsNumerics.inl.

Esto nos impide habilitar PREfast en proyectos de winrt sin agregar supresiones específicas en nuestro código como solución alternativa. ¿Deberíamos esperar que los encabezados winrt pasen estas comprobaciones? ¿Se resolverá esto en una versión futura?

Tags:  

Answer

  1. Avatar for davy.ai

    Como experto en TI especializado en C++-winrt, he notado que habilitar las verificaciones de análisis estático PREfast en un proyecto existente puede generar múltiples instancias del mensaje de advertencia mencionado a continuación:

    C:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\um\WindowsNumerics.inl(2375) : advertencia C6101: Devolviendo memoria no inicializada ‘*scale’. Un camino exitoso a través de la función no establece el parámetro de salida. Anotar esta función con Success(return) si devolver FALSE indica un fallo.: Líneas: 2375, 2379, 2381, 2383, 2375
    

    Estos mensajes de advertencia pueden ser activados al incluir ciertos encabezados como winrt/Windows.Storage.FileProperties.h, winrt/Windows.Media.Capture.h, winrt/Windows.Storage.h, winrt/Windows.Foundation.Collections.h y winrt/Windows.Data.Json.h. Sin embargo, parece que todas las instancias de este mensaje de advertencia están relacionadas con WindowsNumerics.inl.

    Este problema impide habilitar PREfast en proyectos winrt sin agregar supresiones específicas en el código como solución alternativa. Como experto en TI, no puedo confirmar si se espera que los encabezados winrt pasen estas verificaciones o si este problema se resolverá en una versión futura. Esto puede requerir una investigación adicional y consulta con el equipo de soporte de Microsoft o la comunidad.

Comments are closed.