Udostępnij przez


Błąd kompilatora C2356

Segment inicjowania nie może ulec zmianie podczas jednostki tłumaczenia

Uwagi

Możliwe przyczyny:

  • #pragma init_seg poprzedzony kodem inicjowania segmentu

  • #pragma init_seg poprzedzony innym #pragma init_seg

Aby rozwiązać ten problem, przenieś kod inicjowania segmentu na początek modułu. Jeśli należy zainicjować wiele obszarów, przenieś je do oddzielnych modułów.

Example

Poniższy przykład generuje kod 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