2016-01-16 3 views
0

Я вижу, что это распространенная ошибка, но не нашел ответа, который вполне подходит. Я пытаюсь скомпилировать простое приложение на C++, используя Dec -C++ под Win 10. Код был включен с китайским модулем ввода/вывода USB, и мне нужно перекомпилировать его с подсказками и комментариями на английском языке. Первая часть была простой, благодаря Google Translate, но проект выиграл «т компилировать, давая предмет ошибки.Ошибка: ожидаемый конструктор, деструктор или преобразование типа перед '(' токен 2

ошибок выводятся при компиляции включены функции вызываются из main.cpp. функция нарушитель находится ниже.

Я был бы рад помочь здесь!

Dave

#ifndef _MC100_H 
#define _MC100_H 
extern "C"{ 

// 2013-3-27 

#ifndef WINAPI 
#define WINAPI    __stdcall 
#endif 

#define MC100_PORTA   0 
#define MC100_PORTB   1 
#define MC100_PORTC   2 

// Error v here, in all _declspec lines 
_declspec(dllimport) int WINAPI mc100_scan_device(void); 
_declspec(dllimport) int WINAPI mc100_open(int id); 
_declspec(dllimport) int WINAPI mc100_close(int id); 
_declspec(dllimport) int WINAPI mc100_set_pin(int id, int pin); 
_declspec(dllimport) int WINAPI mc100_clear_pin(int id, int pin); 
_declspec(dllimport) int WINAPI mc100_check_pin(int id, int pin); 
_declspec(dllimport) int WINAPI mc100_set_push_pull(int id, int port, int value); 
_declspec(dllimport) int WINAPI mc100_set_pull_up(int id, int port, int value); 
_declspec(dllimport) int WINAPI mc100_read_port(int id, int port); 
_declspec(dllimport) int WINAPI mc100_write_port(int id, int port, int value); 
_declspec(dllimport) int WINAPI mc100_spi_send(int id, unsigned char * buffer, int length); 
_declspec(dllimport) int WINAPI mc100_spi_transmit(int id, unsigned char * buffer, int length); 

} 
#endif 
+4

«Оскорбительная функция ниже» err .. где? –

+0

Не очень приятно, что вы не сказали нам, в какой строке произошла ошибка. – Brian

+0

Имена, начинающиеся с символа подчеркивания, за которым следует большая буква ('_MC100_H'), и имена, содержащие два последовательных символа подчеркивания, зарезервированы для реализации. Не используйте их. –

ответ

0

_declspec старая орфография расширения Microsoft __declspec. Он сообщает компоновщику, что эти символы импортируются из библиотеки. Ваш компилятор не поддерживает его. Вы можете отредактировать источник, чтобы удалить его, или добавить определение (#define _declspec (x)) либо в коде, либо в командной строке, чтобы удалить его.

+0

Я понял, что это ссылки на поставляемую поставщиком dll. Как бы удалить их или исправить их с помощью #define? В качестве альтернативы, будет ли он работать, чтобы редактировать их с _dec до __dec? – DBell

+0

редактирование записей от _dec до __dec, полученных с помощью компиляции, но затем он не удался в компоновщике. Я не добавил поставляемый файл mc100.lib в файлы проекта по параметрам, так и сделал. Он по-прежнему не работает в Make, в следующей строке: $ (CPP) $ (LINKOBJ) -o $ (BIN) $ (LIBS) с ошибками: main.cpp :(. Текст + 0x199): неопределенная ссылка на '__imp_mc100_write_port ' – DBell

Смежные вопросы

 Смежные вопросы