Несколько неопределенных ссылок - Qt Creator - vJoy C++
редактировать
Было отмечено, что я должен использовать MS VC++, а не MinGW, это, кажется, приводит к другой проблеме для меня:
2 неразрешенных внешних символа
- __imp_SetWindowsHookExW
- __imp_UnhookWindowsHookEx
Как видно здесь:
Каждый из них прослеживается в WinUser.h здесь:
Должен ли я сделать и совершенно новый пост для этого? - или пересмотреть текущий пост?
Исходное сообщение:
Я пытаюсь пересобрать программу, которая отображает ввод мыши в "Virtual Joy Stick" с использованием библиотек из vJoy
Оригинальный проект можно найти здесь: MouseToJoystick
Я ничего не изменил в программе, и я пытаюсь скомпилировать его в QT Creator, используя QT 5.10.0 - я не уверен, правильно ли я установил "Настройки сборки".
Вот текущий список предупреждений и ошибок компиляции:
Насколько я могу судить, каждая из перечисленных "неопределенных ссылок" является функцией, которую можно отследить в "vJoyInterface.h", который включен в файл "MainWindow.cpp", где происходят "неопределенные ссылки".
MainWindow.cpp #include (изображение)
А вот "прототипы" для функции, называемой " undefined", в файле "vJoyInterface.h":
Заголовок vJoyInterface (изображение)
Таким образом, по крайней мере "прототипы" для функций существуют - хотя функции могут все еще быть неопределенными - другие ответы, которые я видел, говорят, что проекту необходимо каким-то образом включить / связать соответствующую библиотеку, которая содержит определения для функций.
Единственные другие файлы, связанные с vJoy, находятся в папках " vJoyLib / 64 " и " vJoyLib / 32 ". Которые оба содержат эти файлы:
На эту библиотеку ссылаются в файле " MouseToJoystick.pro ", как показано здесь:
Я предполагаю, что функции vJoy определены где-то в " vJoyInterface.lib ", но я понятия не имею, и я не знаю, как проверить.
TL; DR
QT Creator говорит, что есть "неопределенные ссылки", но я знаю, что прототипы были включены, и я предполагаю, что они определены в библиотеке, связанной с проектом, как показано на этом изображении:
Qt Project Linking vJoyInterface (изображение)
Но я, честно говоря, понятия не имею, где на самом деле определены функции или правильно ли связана библиотека.
Вопросы
- Как определить, где на самом деле определяются функции ИЛИ как правильно включить библиотеку / определения в мой проект?
- Почему в каждой из функций в начале сообщения об ошибке добавлено _imp__?
Дополнительная информация
Qt Creator - Настройки сборки проекта - Qt 5.10.0 MinGW 32bit
1 ответ
@AlexanderVX предоставил этот ответ в комментарии к моему вопросу
После переключения с MinGW на MS VC++ в настройках компиляции проекта я добавил 1 строку кода в мой файлMouseToJoystick.pro.
Вот новая строка кода:
Код файла проекта (изображение)
После этого я сделал "Очистить все", "Запустить Qmake" и "Перестроить все", как показано на этом рисунке:
Шаги (изображение)
Программа компилируется и работает отлично, спасибо @AlexanderVX