Я установил эти пакеты в моей системе:
Я хочу использовать мою Win32 DLL, которая содержит фоновую логику для моего приложения Qt. Что я сделал, так это включил заголовки в C ++ -> Общие -> Дополнительные каталоги включения и ссылался на файл DLL в Общих свойствах -> Ссылки. Этот метод отлично работал с консольным приложением Win32, которое я использовал для тестирования перед созданием проекта Qt под тем же решением.
Я также попробовал опцию «Копировать локально» (VS по какой-то причине каждый раз возвращает значение «Ложь») и указывал путь к каталогу, содержащему файл .lib, в Linker -> General -> Additional Library Directory, который Затем файл был включен в Linker-> Input -> Additional Dependencies. Ничто не похоже на работу.
Код должен предположительно быть ABI-совместимым, так как все было скомпилировано с использованием MSVC. Я также читал это вопрос — может быть, это как-то связано с этим?
Все открытые методы в проекте DLL были выставлены с префиксом __declspec (dllexport).
Я не использовал внешнюю часть «C» и BOOL APIENTRY DllMain, как в этом вопрос.
Ошибка, которая появляется, когда я пытаюсь запустить проект:
РЕДАКТИРОВАТЬ: Теперь я попытался изменить выходную папку сборки приложения Qt на папку проекта DLL. Теперь он работает (только через VS), но при выходе выдает исключение нарушения прав доступа, касающееся библиотеки Qt5Widgetsd.dll:
Problem signature:
Problem Event Name: BEX
Application Name: RagingSeasGUI.exe
Application Version: 0.0.0.0
Application Timestamp: 53fccbaa
Fault Module Name: Qt5Widgetsd.dll
Fault Module Version: 5.3.1.0
Fault Module Timestamp: 53a2bfdb
Exception Offset: 0052f2b4
Exception Code: c0000005
Exception Data: 00000008
OS Version: 6.1.7601.2.1.0.256.1
Locale ID: 1050
Additional Information 1: 0a9e
Additional Information 2: 0a9e372d3b4ad19135b953a78882e789
Additional Information 3: 0a9e
Additional Information 4: 0a9e372d3b4ad19135b953a78882e789
Решается путем изменения выходной папки сборки проекта Qt на ту же, что и у проекта DLL: Свойства конфигурации -> Общие -> Выходной каталог. Все еще не понимаю, почему Visual Studio не позволяет мне использовать опцию «Копировать локально».