• 7139阅读
  • 3回复

shared library 如何使用 [复制链接]

上一主题 下一主题
离线jpchen609
 
只看楼主 正序阅读 楼主  发表于: 2010-01-01
我创建一个简单的shared library 库,但是不清楚是如何使用它,请大家指示一下。

文件一:sharedll_global.h
#ifndef SHAREDLL_GLOBAL_H
#define SHAREDLL_GLOBAL_H

#include <QtCore/qglobal.h>

#if defined(SHAREDLL_LIBRARY)
#  define SHAREDLLSHARED_EXPORT Q_DECL_EXPORT
#else
#  define SHAREDLLSHARED_EXPORT Q_DECL_IMPORT
#endif

#endif // SHAREDLL_GLOBAL_H

文件二:sharedll.pro
QT       -= gui

TARGET = sharedll
TEMPLATE = lib

DEFINES += SHAREDLL_LIBRARY

SOURCES += sharedll.cpp

HEADERS += sharedll.h\
        sharedll_global.h

文件三:sharedll.h
#ifndef SHAREDLL_H
#define SHAREDLL_H

#include "sharedll_global.h"
#include <QString>

class SHAREDLLSHARED_EXPORT ShareDll {
public:
    ShareDll();
};

SHAREDLLSHARED_EXPORT QString showString();
SHAREDLLSHARED_EXPORT QString showString(QString str);

#endif // SHAREDLL_H

文件四:sharedll.cpp
#include "sharedll.h"


ShareDll::ShareDll()
{
}

QString showString()
{
    QString str="hello";
    return str;
}
QString showString(QString str)
{
    QString str1="www.";
    str1+=str;
    return str1;
}


编译后会生成一个 sharedll.dll文件。但是我不清楚是如何使用的~~~


我喜欢,我个性
离线snailbing

只看该作者 3楼 发表于: 2010-01-04
LZ想问的是动态库的调用方法吧
一个是动态调用,可以看一下 QLibrary 类,比这类做了比较好的封装。
另一种就是直接引用编译,不过要库的头文件支持。pro 文件中写  LIBS += ../***.dll
离线xinqingfly

只看该作者 2楼 发表于: 2010-01-04
TEMPLATE = lib

DEFINES += SHAREDLL_LIBRARY
菜鸟也是鸟
离线jnblue

只看该作者 1楼 发表于: 2010-01-04
晕,本末倒置了,有了dll的需求后才去设计dll,而不是写出来dll后考虑怎么用。
使用:
方法1:VC中在设置中的link中的import中加入和你那个dll同时生成的lib文件,以及相应的头文件就可以了
方法2:pro文件中加入LIBS+=XXX.lib
建议查看windows动态库编程方面的资料
快速回复
限100 字节
 
上一个 下一个