C28112
Advertencia C28112: Una variable a la que se obtiene acceso mediante una función Interlocked debe realizarse siempre a través de dicha función
Vea la línea number: No siempre es seguro tener acceso a una variable que se tiene acceso a través de la familia de Interlocked* de funciones de cualquier otra forma.
Una variable a la que obtiene acceso mediante rutinas de apoyo ejecutivas de Interlocked, como InterlockedCompareExchangeAcquire, se tiene acceso después con un método diferente. Aunque determinadas asignaciones normales, accesos y comparaciones con las variables utilizadas por las rutinas de Interlocked* se pueden lograr con seguridad con un método diferente, el riesgo es lo suficientemente grande como para justificar la verificación de cada versión.
Ejemplo
El siguiente ejemplo de código genera la advertencia:
inter_var --;
...
InterlockedIncrement(&inter_var);
El siguiente ejemplo de código evita la advertencia:
InterlockedDecrement(&inter_var);
...
InterlockedIncrement(&inter_var);