我需要将一些源代码编译成DLL,并将其加载到其他项目中。我有一个名为
的条目extern "C" LTCPOS_LSHARED_EXPORT tcpClient_Os* getClientInst(VhostInfo hostInfo, CtcpOpt *tcpOpt, QObject *parent = 0);
“tcpClient_OS”的类型是一个自定义类。当我在另一个项目中使用QLibrary加载DLL时,似乎我必须将源文件(cpp文件)添加到* .pro中,以便编译项目时没有错误。为什么呢?
使用返回自定义类指针的函数构建DLL的常规例程是什么?如何加载它?
答案 0 :(得分:1)
不熟悉构建qt的东西但是在windows中我们通常需要一个lib和一些头文件来调用另一个dll中的东西。我们还有LoadLibrary,GetProcAddress,用于执行编译时未知的内容。
看起来它与构建qt的东西非常相似。编译你的dll,除了dll本身它应该产生一个lib。在用于引用项目的proj config中,需要一个LIBS + =和lib的路径。
这是我在QLibrary上找到的链接,它是Windows LoadLibrary / GetProcAddress和dlopen / dlsym的抽象 http://tufangorel.blogspot.com/2011/11/call-symbol-from-shared-object-file-dll-with-qlibrary.html