Qt Visual Studio外接程序项目 - 无法导入Win32 DLL

时间:2014-08-26 16:48:10

标签: c++ qt dll visual-studio-2013 add-in

我已经在我的系统上安装了这些软件包:

  • Qt 5.3.1 for Windows 32-bit(VS 2013,OpenGL,557 MB)
  • 适用于Qt5的Visual Studio加载项1.2.3

我想在我的Qt应用程序中使用包含后台逻辑的Win32 DLL。我所做的是包含在C ++中的标题 - >一般 - >其他包含目录并引用公共属性中的DLL文件 - >引用。这个方法适用于在同一解决方案下创建Qt项目之前用于测试的Win32控制台应用程序。 我还尝试了“复制本地”选项(VS将其恢复为" False"每次都出于某种原因)并将包含.lib文件的目录的路径放在链接器中 - >一般 - >其他图书馆目录,该文件随后包含在Linker->中。输入 - >额外的依赖关系。似乎没什么用。 应该认为代码符合ABI,因为所有内容都是使用MSVC编译的。我也读过question - 也许它与此有关?

DLL项目中的所有公共方法都使用__declspec(dllexport)前缀公开。 我没有使用过extern" C"部分或BOOL APIENTRY DllMain就像在这个question中一样。

我尝试运行项目时弹出的错误:Error

编辑:我现在尝试将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

1 个答案:

答案 0 :(得分:0)

通过将Qt项目的构建输出文件夹更改为与DLL项目相同的文件来解决:配置属性 - >一般 - >输出目录。仍然不明白为什么Visual Studio不允许我使用“复制本地”选项。