如何用VS2010编写动态链接库DLL
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用VS2010编写动态链接库DLL相关的知识,希望对你有一定的参考价值。
参考技术A 1、 创建引用动态链接库的应用程序:在解决方案上单击鼠标右键》添加》新建项目2、 在添加新项目中选择其它语言->Visual C++->Win32,选择Win32 控制台应用程序,设置名称:simpleDLLTest
3、 单击确定,在出现的Win32 应用程序向导的概述对话框中点击下一步
4、 在应用程序设置中,选择应用程序类型下的控制台应用程序,单击完成创建项目
5、 在控制台应用程序中使用类库的功能:1、为SimpleDLLTest.cpp添加内容。如下所示:
6、 引用simpleDLL项目。右键单击SimpleDLLTest项目,选择项目依赖项;依赖于窗口中勾选SimpleDLL,单击确定
7、设置SimpleDLLTest项目为活动项目。右键单击SimpleDLLTest项目,选择设为启动项目
生成解决方案。
如何用qt在linux中编写并使用动态链接库
先写好实现动态链接库的libmy.cpp文件和libmy.h文件,如下:
// libmy.cpp
#include"libmy.h"
#include<iostream>
using namespace std;
MyLib::MyLib()
MyLib::~MyLib()
void MyLib::hello()
cout << "hello world~!" << endl;
// libmy.h文件
#ifndef LIBMY_H
#define LIBMY_H
class MyLib
public:
MyLib();
~MyLib();
void hello();
;
#endif /*LIBMY_H*/
然后写好pro文件,如下:
TEMPLATE = lib
TARGET =DllTest
HEADERS += libmy.h
SOURCES += libmy.cpp
保存关闭,文件名命名为MyDll.pro
在Shell里执行qmake MyDll.pro,在没有错误的情况下,然后执行make ,可以看到生成了几个后缀名为so的文件,如下图:
证明生成动态链接库成功。然后编写测试动态链接库的主函数,如下:
#include"libmy.h"
#include<iostream>
using namespace std;
int main(int argc,char *argv[])
MyLib *lib = new MyLib(); // 调用刚才编写的动态链接库
lib->hello();
cout << "danshiming " << endl;
int i;
cin >> i;
return 1;
编写main.pro文件,如下:
LIBS += -L ./ # 设置程序查找动态库的目录为当前目录
# 注意:用QT生成的动态库默认都加了lib前缀和扩展名及版本名,但调用时不用加lib,不用加文件
# 扩展名so、不用加版本名1.0.0.即下面LIBS中的DllTest就是实际的动态库libDllTest.so.1.0.0
LIBS+=-lDllTest #注意:调用时不用加lib,不用加文件扩展名so、不用加版本名1.0.0,记得前面加l(字母)
TARGET = libMyTest
SOURCES += main.cpp
执行qmake main.pro生成makefile文件,然后执行make,可以看到生成了libMyTest可执行文件。
将动态链接库libDllTest.so.1.0.0和可执行文件传到arm板上,如下:
在arm板上执行libMyTest,如下:
# chmod +x libMyTest // 先赋予可执行权限
执行:
# ./libMyTest
输出如下:
参考技术A 举个例子,就容易理解了。//libmy.h
#ifndef LIBMY_H
#define LIBMY_H
#include <QObject>
class MyLib : public QObject
public:
MyLib();
~MyLib();
void hello();
;
#endif /*LIBMY_H*/
//libmy.cpp
#include "libmy.h"
#include <QtDebug>
MyLib::MyLib()
MyLib::~MyLib()
void MyLib::hello()
qDebug() << "hello world~!";
//libmy.pro
######################################################################
# Automatically generated by qmake (2.01a) ?? 11? 7 17:17:14 2012
######################################################################
TEMPLATE = lib
TARGET = my
DEPENDPATH += . src
INCLUDEPATH += . src
# Input
HEADERS += src/libmy.h
SOURCES += src/libmy.cpp
//libmy.pc
prefix=/usr
exec_prefix=$prefix
libdir=$exec_prefix/lib
includedir=$prefix/include/
Name: libmy
Description: libmy test
Version: 0.1
Requires:
Libs: -L$libdir -lmy
Cflags: -I$includedir
以上是编写库的demo
//main.cpp
#include "libmy.h"
#include <QApplication>
int main(int argc,char *argv[])
QApplication app(argc,argv);
MyLib *lib = new MyLib();
lib->hello();
app.exec();
return 0;
在main.cpp的pro文件中,添加
CONFIG += link_pkgconfig
PKGCONFIG += libmy
连接到刚才编译的libmy库,本回答被提问者和网友采纳
以上是关于如何用VS2010编写动态链接库DLL的主要内容,如果未能解决你的问题,请参考以下文章
怎么在C#中添加用C语言开发的动态链接库dll文件(vs2010)?