Callback вызов
От: LeonCrew Беларусь  
Дата: 01.09.06 22:54
Оценка:
Коллеги, посоветуйте, как лучше организовать обработку вызова Callback.
Изначально к ПК можно было подключать только одно устройство и в драйверах никто не предусмотрел идентификатор устройства при вызове Callback функции. Фактически, разработчик делал так:
SetCallback( DeviceId, CallbackFunc );

Где-то в программе:
int __stdcall CallbackFunc( const void *Buffer, int Length)
{
….
}

Теперь же при модернизации устройства стало возможным подключать до 64 таких устройств к одному ПК. Если изначально известно сколько будет устройств подключено или использовано в данной задаче, то вопросов не возникает, но! Поставлена задача написать универсальный класс для работы с любым количеством устройств. Как выполнить данную задачу, если пишется класс с static функцией на которую ссылаются все SetCallback и при этом нет возможности понять, с какова устройства пришел непосредственно вызов.
Править драйвера устройства нет возможности. На данный момент есть мысль: написать обработчик в виде DLL и запускать столько копий DLL сколько устройств.

Платформа Windows, но если есть более универсальный способ – буду только рад.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.