Partilhar via


Erro do compilador C2356

O segmento de inicialização não deve ser alterado durante a unidade de tradução

Observações

Causas possíveis:

  • #pragma init_seg precedido por código de inicialização de segmento

  • #pragma init_seg precedido por outro #pragma init_seg

Para resolver, mova o código de inicialização do segmento para o início do módulo. Se várias áreas precisarem ser inicializadas, mova-as para módulos separados.

Example

O exemplo a seguir gera 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