2009-10-14 4 views
1

Я уверен, преобразование приложения использовать .dlls и я пронизана ошибки компоновщика о томПри каких условиях вы получите неразрешенный внешний символ для __declspec (dllimport)?

unersolved внешний символ "__ declspec (DllImport) общественности: аннулируются __thiscall Rail :: SetNextrail (класс Rail *) "

В конце этого сообщения об ошибке больше тарабарщины. Почему это должно произойти и как вы это исправите? __declspec (DllImport) будет размещен с помощью макроса определяется как:

#ifdef LUDOAI_EXPORT 
#define DECLSPECAI __declspec(dllexport) 
#else 
#define DECLSPECAI __declspec(dllimport) 
#endif 
+1

Вызывающее соглашение не является проблемой, компоновщик не может найти определение «SetNextrail», –

ответ

2

Я считаю, что вам нужно сделать, это указать Rails «библиотеку импорта» линкер. Используя графический интерфейс, это находится на вкладке компоновщика параметров проекта в разделе «Дополнительные библиотеки».

«Библиотека импорта» - это .LIB-файл, содержащий символы, которые разрешают импорт соответствующей библиотеки. В символах из файла .LIB есть безусловный переход к соответствующему адресу таблицы импорта для импорта. Когда ваш код вызывает импорт, он действительно вызывает этот заглушка в библиотеке импорта, которая переходит к импорту.

0

Я бы просто хотел добавить, если вы используете Qt Creator, эта ошибка означает, что вам нужно добавить соответствующую библиотеку импорта в ваш проект (.pro).

Например:
LIBS += $$quote(C:/Qt/4.7.3/lib/QtXml4.lib) для отладочных и выпускных версий.

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

  • Нет связанных вопросов^_^