2013-11-25 3 views
2

Проект, сделанный в 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

+0

Вы связываете свой проект с hid.lib? – drescherjm

+0

Исправить форматирование plz !! –

+0

В Project Property/Linker/Ipnut я добавил hid.lib. Но этот dosnt исправляет ошибку. Что вы подразумеваете, исправляя форматирование? – user3033627

ответ

2

Возможно, вам нужно добавить файл библиотеки hidparse.lib, который содержит функцию HidP_GetCaps. Щелкните правой кнопкой мыши проект в обозревателе решений, выберите «Свойства», а в разделе «Связи» (Input) добавьте hidparse.lib в «Дополнительные зависимости».

+0

непредвиденный что не работает. Неустранимая ошибка LNK1104: не удается открыть файл «hidparse.lib» :( – user3033627

+0

В том числе «hid.lib» должно быть достаточно. Просто добавьте «extern» C », как писал Энди Йеллэнд. – Gediminas

2

Кажется, что Hidsdh.h не является совместимым с C++ заголовком. Включите его вот так:

//This is not a C++ header 
extern "C" 
{ 
#include <Hidsdi.h> 
}