Вопрос № 100448: Доброго времени года ! Допустим, что некий процесс загружает нашу dll. Можно ли из dll проверить сколько на ней уже висит обращений. (Нужно узнать впервые она загружается или нет)...
Вопрос № 100.448
Доброго времени года ! Допустим, что некий процесс загружает нашу dll. Можно ли из dll проверить сколько на ней уже висит обращений. (Нужно узнать впервые она загружается или нет)
Отправлен: 01.09.2007, 15:37
Вопрос задал: Shurka (статус: 2-ой класс)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: Решетник Д
Здравствуйте, Shurka!
Данный участок кода поможет вам определить наличие второго экземпляра чего-угодно... исползьуется объект синхронизации мутекс. программа проверяет наличие мутекса с таким именем в системе. если его нет - длл запущена 1-й раз и нужно создать мутекс.
BOOL funccc(LPSTR s/*mutex name*/)
{
HANDLE hMut = CreateMutex (NULL, TRUE, s);
if (GetLastError() == ERROR_ALREADY_EXISTS)
{
CloseHandle(hMut);
return FALSE; //already exists
}
CloseHandle(hMut);
return TRUE; // first copy
}
проверили, а теперь создаем мутекс
CreateMutex (NULL, TRUE, s);
Хотя можно просто не закрывать дескриптор мутекс в функции... на ваше усмотрение
--------- Жизнь коротка, чтобы писать на ассемблере
Ответ отправил: Решетник Д (статус: Студент)
Ответ отправлен: 03.09.2007, 15:51 Оценка за ответ: 5 Комментарий оценки: Я просто думал есть способы проще