FAQ:WinAPI VCPP:общие для разных процессов переменные в DLL — различия между версиями
Материал из Весельчак У
RXL (обсуждение | вклад) (Новая: ===Я написал DLL, которую используют несколько приложений. Всё работает, но когда происходит очередной в...) |
(нет различий)
|
Текущая версия на 15:49, 3 октября 2009
Я написал DLL, которую используют несколько приложений. Всё работает, но когда происходит очередной вызов функции из DLL, почему то, данные в функции обнуляются. С чем это связано?
Переменные и массивы в DLL, содержимое которых должно использоваться несколькими процессами, должны объявляться статическими. Статическая переменная или массив инициализируются только один раз в момент загрузки DLL.
Пример:
DWORD calltest() { // будет выполнено только при первом вызове static DWORD callcount = 0; static DWORD str[1000] = {0}; // будет выполняться каждый раз callcount++; return callcount; }