0

我正在尝试在我的一个 Qt DLL 中使用 Qwt。

问题是如果我在里面调用 QwtPlot 的构造函数,则库不会加载。如果我将其注释掉,它会加载。请注意,当取消注释 QwtPlot 时,DLL 会成功构建。

我正在使用 Visual Studio 2010。

有什么想法吗?

编辑(加载 dll 的代码,尽管代码对于内部没有 QWT 的 dll 工作得很好):

typedef bool (*EntryPointPtr)(); 
HINSTANCE _pDLL; 
EntryPointPtr _pFn; 
_pDLL = ::LoadLibrary("..\\MyDll.dll"); 
_pFn = (EntryPointPtr) ::GetProcAddress(_pDLL, "qtLoader");
_pFn();
4

1 回答 1

3

问题已解决,这是任何可能再次遇到相同问题的人的解决方案。

最初我设置项目设置如下:

  1. VC++ 目录 -> 包含目录 -> QWT src 文件夹的路径
  2. VC++ 目录 -> 库目录 -> QWT lib 文件夹的路径
  3. 链接器 -> 输入 -> 附加依赖项 -> qwtd.lib 或 qwt.lib(根据调试模式)

需要做的是:

  1. C/C++ -> 常规 -> 其他包含目录 -> QWT src 文件夹的路径
  2. 链接器 -> 常规 -> 其他库目录 -> QWT lib 文件夹的路径
  3. 链接器 -> 输入 -> 附加依赖项 -> qwtd.lib 或 qwt.lib(根据调试模式)

似乎 Visual Studio 无法使用初始选项正确链接它。

PS。感谢您的帮助。您的回答引导我朝着正确的方向前进,并最终帮助我找出问题所在。向你们所有人致敬。

于 2012-03-06T09:27:57.310 回答