Поведение статических переменных в динамически подключаемых библиотеках (C/C++)

Лучшее решение состояло бы в том, чтобы выполнить вызов Ajax в iframe к странице, которая получит/установит cookie...

7
задан Community 23 May 2017 в 12:16
поделиться

2 ответа

Статическая переменная окажется в разделе .BSS или .DATA файла DLL. Исполняемый файл, который ссылается на DLL, вероятно, даже не узнает о ее существовании. Когда EXE загружает DLL, система настраивает для нее разделы данных DLL, а затем вызывает DllMain (). Именно тогда статика DLL возникает и инициализируется.

7
ответ дан 7 December 2019 в 05:26
поделиться

Да. Различия между разными типами статических переменных заключаются в следующем:

  • область видимости

  • время инициализации для динамически инициализируемых переменных.

Реализация (и обратите внимание, что сегменты BSS и DATA являются деталями реализации) обычно одинакова. Чтобы гарантировать правильную инициализацию динамически инициализируемых статических переменных функции, один из способов - добавить дополнительное логическое значение, указывающее на необходимость динамической инициализации.

1
ответ дан 7 December 2019 в 05:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: