Коллеги, посоветуйте, как лучше организовать обработку вызова Callback.
Изначально к ПК можно было подключать только одно устройство и в драйверах никто не предусмотрел идентификатор устройства при вызове Callback функции. Фактически, разработчик делал так:
SetCallback( DeviceId, CallbackFunc );
Где-то в программе:
int __stdcall CallbackFunc( const void *Buffer, int Length)
{
….
}
Теперь же при модернизации устройства стало возможным подключать до 64 таких устройств к одному ПК. Если изначально известно сколько будет устройств подключено или использовано в данной задаче, то вопросов не возникает, но! Поставлена задача написать универсальный класс для работы с любым количеством устройств. Как выполнить данную задачу, если пишется класс с static функцией на которую ссылаются все SetCallback и при этом нет возможности понять, с какова устройства пришел непосредственно вызов.
Править драйвера устройства нет возможности. На данный момент есть мысль: написать обработчик в виде DLL и запускать столько копий DLL сколько устройств.
Платформа Windows, но если есть более универсальный способ – буду только рад.