1

我需要将一些源代码编译成 DLL,并将其加载到其他项目中。我有一个条目叫

extern "C" LTCPOS_LSHARED_EXPORT tcpClient_Os* getClientInst(VhostInfo hostInfo, CtcpOpt *tcpOpt, QObject *parent = 0);

“tcpClient_OS”的类型是自定义类。当我在不同的项目中使用 QLibrary 加载 DLL 时,似乎我必须将源文件(cpp 文件)添加到 *.pro 中,以使项目编译时没有错误。为什么?

使用返回自定义类指针的函数构建 DLL 的正常例程是什么,如何加载它?

4

1 回答 1

1

不熟悉构建 qt 的东西,但在 Windows 中,我们通常需要一个 lib 和一些头文件来调用另一个 dll 中的东西。我们还有 LoadLibrary、GetProcAddress 用于执行编译时未知的内容。

看起来它与构建 qt 的东西非常相似。编译你的 dll,除了 dll 本身它应该生成一个 lib。在用于引用项目的项目配置中,需要一个带有 lib 路径的 LIBS +=。

这是我在 QLibrary 上找到的链接,它是 Windows LoadLibrary/GetProcAddress 和 dlopen/dlsym http://tufangorel.blogspot.com/2011/11/call-symbol-from-shared-object-file-dll-with的抽象-qlibrary.html

于 2012-10-30T11:03:13.783 回答