Проект, сделанный в C, имеет файл RawInput.c от http://www.codeproject.com/Articles/185522/Using-the-Raw-Input-API-to-Process-Joystick-Input. Я скомпилировал его, и он отлично работает в vs2012. Но когда я вставил один и тот же код в cpp нового проекта, я получаю 4 из этих ошибок, просто разные имена объявлений. ошибка LNK2019: неразрешенный внешний символ «long __stdcall HidP_GetCaps (struct _HIDP_PREPARSED_DATA .... фатальная ошибка LNK1120: 4 нерешенных внешних я думаю, что у меня есть что-то, что я пытаюсь запустить c-код в компиляторе C++, не сообщая ему правильного пути Возможно, там где-то должно быть extern «C»? Я бы не знал, даже если бы я попытался изо всех сил найти веб-сайт для решений. Спасибо.ошибка LNK2019: неразрешенный внешний символ. c файл к cpp
ответ
Возможно, вам нужно добавить файл библиотеки hidparse.lib
, который содержит функцию HidP_GetCaps. Щелкните правой кнопкой мыши проект в обозревателе решений, выберите «Свойства», а в разделе «Связи» (Input) добавьте hidparse.lib в «Дополнительные зависимости».
непредвиденный что не работает. Неустранимая ошибка LNK1104: не удается открыть файл «hidparse.lib» :( – user3033627
В том числе «hid.lib» должно быть достаточно. Просто добавьте «extern» C », как писал Энди Йеллэнд. – Gediminas
Кажется, что Hidsdh.h не является совместимым с C++ заголовком. Включите его вот так:
//This is not a C++ header
extern "C"
{
#include <Hidsdi.h>
}
Вы связываете свой проект с hid.lib? – drescherjm
Исправить форматирование plz !! –
В Project Property/Linker/Ipnut я добавил hid.lib. Но этот dosnt исправляет ошибку. Что вы подразумеваете, исправляя форматирование? – user3033627