Error del compilador C2356
el segmento de inicialización no debe cambiar durante la unidad de traducción
Causas posibles:
#pragma init_seg
precedido por código de inicialización de un segmento.#pragma init_seg
precedido por otro#pragma init_seg
.
Para resolverlo, mueva el código de inicialización del segmento al principio del módulo. Si deben inicializarse varias áreas, muévalas a módulos diferentes.
El ejemplo siguiente genera el error C2356:
// C2356.cpp
#pragma warning(disable : 4075)
int __cdecl myexit(void (__cdecl *)());
int __cdecl myexit2(void (__cdecl *)());
#pragma init_seg(".mine$m",myexit)
#pragma init_seg(".mine$m",myexit2) // C2356