Visual Studio C++: error C2440: '=' : cannot convert from 'void *' to ...
Написал microsin   
20.04.2009

Ругань началась при попытке компиляции c-кода в cpp-проекте на строку *HidDevices = calloc (*NumberDevices, sizeof (HID_DEVICE)):
путь_до_проекта\usbhid.cpp(70): error C2440: '=' : cannot convert from 'void *' to 'PHID_DEVICE'

Причина - переменная *HidDevices имела тип PHID_DEVICE, а calloc возвращает тип void *. Дело в том, что в проекте CPP компилятор более строго проверяет соответствие типов, чем в проекте на чистом C. Вариантов решения 2 - либо поменять тип проекта (с CPP на чистый C), либо применить явное преобразование типа, например так:
*HidDevices = (PHID_DEVICE) calloc (*NumberDevices, sizeof (HID_DEVICE));

Решение проблемы было найдено на http://winprog.org/tutorial/errors.html