Несколько неопределенных ссылок - Qt Creator - vJoy C++

редактировать

Было отмечено, что я должен использовать MS VC++, а не MinGW, это, кажется, приводит к другой проблеме для меня:

2 неразрешенных внешних символа

  1. __imp_SetWindowsHookExW
  2. __imp_UnhookWindowsHookEx

Как видно здесь: image1

Каждый из них прослеживается в WinUser.h здесь:

img2

Должен ли я сделать и совершенно новый пост для этого? - или пересмотреть текущий пост?


Исходное сообщение:

Я пытаюсь пересобрать программу, которая отображает ввод мыши в "Virtual Joy Stick" с использованием библиотек из vJoy

Оригинальный проект можно найти здесь: MouseToJoystick

Я ничего не изменил в программе, и я пытаюсь скомпилировать его в QT Creator, используя QT 5.10.0 - я не уверен, правильно ли я установил "Настройки сборки".


Вот текущий список предупреждений и ошибок компиляции:

Ошибки Qt Creator (* изображение *)

Насколько я могу судить, каждая из перечисленных "неопределенных ссылок" является функцией, которую можно отследить в "vJoyInterface.h", который включен в файл "MainWindow.cpp", где происходят "неопределенные ссылки".

Проект ** Каталог ** Структура (* изображение *)

MainWindow.cpp #include (изображение)

А вот "прототипы" для функции, называемой " undefined", в файле "vJoyInterface.h":

Заголовок vJoyInterface (изображение)


Таким образом, по крайней мере "прототипы" для функций существуют - хотя функции могут все еще быть неопределенными - другие ответы, которые я видел, говорят, что проекту необходимо каким-то образом включить / связать соответствующую библиотеку, которая содержит определения для функций.

Единственные другие файлы, связанные с vJoy, находятся в папках " vJoyLib / 64 " и " vJoyLib / 32 ". Которые оба содержат эти файлы:

Папка vJoyLib Библиотеки (* изображение *)

На эту библиотеку ссылаются в файле " MouseToJoystick.pro ", как показано здесь:

Qt Project Linking vJoyInterface (* изображение *)

Я предполагаю, что функции vJoy определены где-то в " vJoyInterface.lib ", но я понятия не имею, и я не знаю, как проверить.


TL; DR

QT Creator говорит, что есть "неопределенные ссылки", но я знаю, что прототипы были включены, и я предполагаю, что они определены в библиотеке, связанной с проектом, как показано на этом изображении:

Qt Project Linking vJoyInterface (изображение)

Но я, честно говоря, понятия не имею, где на самом деле определены функции или правильно ли связана библиотека.


Вопросы

  1. Как определить, где на самом деле определяются функции ИЛИ как правильно включить библиотеку / определения в мой проект?
  2. Почему в каждой из функций в начале сообщения об ошибке добавлено _imp__?

Дополнительная информация

Qt Creator - Настройки сборки проекта - Qt 5.10.0 MinGW 32bit

1 ответ

Решение

@AlexanderVX предоставил этот ответ в комментарии к моему вопросу

После переключения с MinGW на MS VC++ в настройках компиляции проекта я добавил 1 строку кода в мой файлMouseToJoystick.pro.

Вот новая строка кода:

Код файла проекта (изображение)

После этого я сделал "Очистить все", "Запустить Qmake" и "Перестроить все", как показано на этом рисунке:

Шаги (изображение)

Программа компилируется и работает отлично, спасибо @AlexanderVX

Другие вопросы по тегам