Ошибка компилятора C2356
Сегмент инициализации не должен изменяться во время единицы перевода
Возможные причины:
#pragma init_seg
предшествует код инициализации сегмента#pragma init_seg
перед другим#pragma init_seg
Чтобы устранить проблему, переместите код инициализации сегмента в начало модуля. Если необходимо инициализировать несколько областей, переместите их в отдельные модули.
Следующий пример приводит к возникновению ошибки 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