我想使用Qt进行一些开发工作。我已经构建了几个小应用程序并遵循 一些教程。一切都很好,似乎很直接。
要完成的开发涉及使用win32 dll中包含的现有代码。我想以最小的麻烦重用这些代码并将它们链接到我的Qt应用程序中。我有头文件,库和dll所以我将在编译时链接而不是在运行时动态链接。
我试过这样做但Qt总是抱怨总是抱怨链接错误类似于: main.obj:-1:错误:LNK2019:未解析的外部符号_ imp _Add在函数_main中引用
无论我如何调整.pro文件,它总是抱怨。
我花了很多时间在谷歌搜索并找到了信息片段。我找不到一个讲述整个故事的答案。我所追求的是一系列步骤,需要遵循的序列教程。在Qt安装示例中甚至可能有一个示例,但我一直无法找到它。
这是我为了继续进行主要开发而努力工作的简单“敲门”。它基于MS教程dll MathsFunc。
win32 dll:
// Visual Studio 2005
//Funcs.h
#ifdef MATHFUNCS_EXPORTS
#define MATHFUNCSDLL_API __declspec(dllexport)
#else
#define MATHFUNCSDLL_API __declspec(dllimport)
#endif
#ifdef __cplusplus
extern "C" { /* Assume C declarations for C++ */
#endif
// Returns a + b
MATHFUNCSDLL_API double Add(double a, double b);
#ifdef __cplusplus
} /* Assume C declarations for C++ */
#endif
//Funcs.cpp
#include "Funcs.h"
double Add(double a, double b)
{
return a + b;
}
导入dll的Qt应用。
//main.cpp
#include <QCoreApplication>
#include "../../mathfuncs/funcs.h"
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
double dResult = Add(1.0,2.0);
printf("1 + 2 = %f\n",dResult);
return a.exec();
}
// Qt项目文件.por
#-------------------------------------------------
#
# Project created by QtCreator 2013-03-04T09:16:18
#
#-------------------------------------------------
QT += core
QT -= gui
TARGET = Useit
CONFIG += console
CONFIG -= app_bundle
TEMPLATE = app
SOURCES += main.cpp
INCLUDEPATH += c:/tmp/mathfuncs
HEADERS += c:/tmp/mathfuncs
LIBS += c:/tmp/mathfuncs/MathFuncs.lib
提前感谢任何输入。
d