Главная arrow Программирование arrow PC arrow Visual Studio C++: error C2440: '=' : cannot convert from 'void *' to ... Monday, March 27 2017  
ГлавнаяКонтактыАдминистрированиеПрограммированиеСсылки
UK-flag-ico.png English Version
GERMAN-flag-ico.png Die deutsche Version
map.gif карта сайта
нашли опечатку?

Пожалуйста, сообщите об этом - просто выделите ошибочное слово или фразу и нажмите Shift Enter.

Поделиться:

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

 

Добавить комментарий

:D:lol::-);-)8):-|:-*:oops::sad::cry::o:-?:-x:eek::zzz:P:roll::sigh:

Защитный код
Обновить

< Пред.   След. >

Top of Page
 
microsin © 2017