一、动态链接库的生成

  1. 首先利用VS2010新建一个空的工程或者win32工程

  2.在工程中添加头文件和源文件

  3.工程属性配置

3.1 可以在解决方案目录下新建以下几个文件夹

bin (用于存放Release编译生成的dll或exe文件)

bin_debug(用于存放Debug编译生成的dll或exe文件)

lib(用于存放Release编译生成的lib文件)

lib_debug(用于存放Debug编译生成的lib文件)

include(用于存放dll库对应的.h文件)

3.2设置工程属性

选中Algorithm工程——右键选中Properties

说明:若是Release编译将Output Directory设置为:..\bin

  Import Library设置为:..\lib\$(TargetName).lib

3.3 DllDemon程序的编写

 //Algorithm.h
#ifndef ALGORITHM_H_
#define ALGORITHM_H_
class _declspec(dllexport) McsfAlgorithm
{
public:
McsfAlgorithm();
~McsfAlgorithm();
int Add(int, int);
int Sub(int, int);
};
#endif
 //Algorithm.cpp
#include "Algorithm.h"
McsfAlgorithm::McsfAlgorithm()
{ } McsfAlgorithm::~McsfAlgorithm()
{ } int McsfAlgorithm::Add(int firstNum, int secondNum)
{
return firstNum + secondNum;
} int McsfAlgorithm::Sub(int firseNum, int secondNum)
{
return firseNum - secondNum;
}

3.4编译DllDemon工程,可以看到对应目录下生成的dll文件和lib文件

二、动态链接库的调用

1、在此解决方案下新建一个空的工程DllTestOperation,然后添加.cpp文件

2、配置DllTestOperation的工程属性,如下

3 main.cpp对应的代码

//main.cpp
#include "Algorithm.h"
#include <memory>
#include <iostream>
int main(int argc, char *argv[])
{
std::shared_ptr<McsfAlgorithm> myOpertion(new McsfAlgorithm());
int testNum1 = myOpertion->Add(,);
int testNum2 = myOpertion->Sub(,);
std::cout<<"testNum1 = "<<testNum1<<std::endl;
std::cout<<"testNum2 = "<<testNum2<<std::endl;
return ;
}

4. 编译此工程,运行结果如下:

总结:

1)包含dl对应的头文件

2)加入lib文件及其对应的目录

3)输出目录与dll的输出目录一致

4)与dll工程保持相同的编译平台(win32 或 X64)

VS2010动态链接库的生成及调用(C++)的更多相关文章

  1. VS2015环境下生成和调用DLL动态链接库

    一.生成动态链接库: 1.打开VS2015->文件->新建->项目->Visual C++->Win32->Win32控制台应用程序->将名称改为dll_ge ...

  2. VS2013 C++ 生成与调用DLL(动态链接库) 需要验证

    转载:https://blog.csdn.net/s978697043/article/details/82429802 一.创建动态链接库(生成.dll .lib 两个文件) 文件→新建→项目 选择 ...

  3. C/C++中动态链接库的创建和调用

    DLL 有助于共享数据和资源.多个应用程序可同时访问内存中单个DLL 副本的内容.DLL 是一个包含可由多个程序同时使用的代码和数据的库.下面为你介绍C/C++中动态链接库的创建和调用. 动态连接库的 ...

  4. C++(VS2012)DLL动态库的生成和调用

    DLL动态链接库的生成: 首先打开VS2012,新建——项目——Win32控制台应用程序(项目名称:ConsoleApplication1)——空项目 新建一个源文件source.cpp 先用控制台e ...

  5. vc6静态库的生成和调用

    转自vc6静态库的生成和调用 1.静态库的生成: 在vc6.0++中Ctrl+N选择Projects下的Win32 Static Library,Project name:SumLib,点击OK,下一 ...

  6. [转贴] C/C++中动态链接库的创建和调用

    DLL 有助于共享数据和资源.多个应用程序可同时访问内存中单个DLL 副本的内容.DLL 是一个包含可由多个程序同时使用的代码和数据的库.下面为你介绍C/C++中动态链接库的创建和调用. 动态连接库的 ...

  7. 分享:根据webservice WSDL地址自动生成java调用代码及JAR包

    分享:根据webservice WSDL地址自动生成java调用代码及JAR包使用步骤:一.安装java 并配置JAVA_HOME 及 path二.安装ANT 并配置ANT_HOME三.解压WsdlT ...

  8. Keil中LIB库的作用、生成与调用

    LIB库有什么用,一个简单的例子就是Silicon Labs为C8051F单片机USB提供的USBXpress LIB库了,如USB发送数据.接收数据等,都是通用性很强的函数,但因为保密的原因,这个函 ...

  9. Keil C 里面Lib库文件的生成与调用

    源:Keil C 里面Lib库文件的生成与调用

随机推荐

  1. Django+xadmin打造在线教育平台(一)

    目录 在线教育平台(一)      在线教育平台(二) 在线教育平台(三)      在线教育平台(四) 在线教育平台(五)      在线教育平台(六) 在线教育平台(七)      在线教育平台( ...

  2. 【Linux基础】常用Linux命令: cd, cp, ls, mkdir, mv, rm, su, uname

    常用Linux命令:cd, cp, ls, mkdir, mv, rm, su, uname cd命令:切换当前工作目录至 dirName(目录参数) 其中 dirName 可为绝对路径或相对路径.若 ...

  3. 【python3基础】相对路径,‘/’,‘./’,‘../’

    python3相对路径 “/” 前有没有 “.” ,有几个“.”,意思完全不一样. “/”:表示根目录,在windows系统下表示某个盘的根目录,如“E:\”: “./”:表示当前目录:(表示当前目录 ...

  4. Android项目目录结构模板以及简单说明【简单版】

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 概述 开发Android项目的时候,一般都是一边开发一边根据需求创建目录(包.module),那么我呢就根据以往的项目经验,整理出一个比较 ...

  5. 关闭 Mac 拼写自动纠正与横线转换

    如果你是个程序员, 如果你恰好用 mac 自带的 notes 来做笔记, 很大可能性, 你会在里面贴代码, 但是, Mac 的拼写检查和自动纠正功能,会把代码变成你不想要的样子, 比如, 它会为你首字 ...

  6. 动手写 js 沙箱

    本文由云+社区发表 作者:ivweb villainthr 市面上现在流行两种沙箱模式,一种是使用iframe,还有一种是直接在页面上使用new Function + eval进行执行. 殊途同归,主 ...

  7. 玩转SpringBoot之定时任务详解

    序言 使用SpringBoot创建定时任务非常简单,目前主要有以下三种创建方式: 一.基于注解(@Scheduled) 二.基于接口(SchedulingConfigurer) 前者相信大家都很熟悉, ...

  8. 【网摘】C#中TransactionScope的使用方法和原理

    时间 2013-08-12 19:59:34  51CTO推荐博文 原文  http://cnn237111.blog.51cto.com/2359144/1271600 在.net 1.1的时代,还 ...

  9. Java高阶语法---static

    背景:听说static Java高阶语法是挺进BAT必经之路. static: 静态static,很多时候会令我望文生义,但是get到了static最重要的一点,其他的理解都还ok. static最重 ...

  10. DRDS分布式SQL引擎—执行计划介绍

    摘要: 本文着重介绍 DRDS 执行计划中各个操作符的含义,以便用户通过查询计划了解 SQL 执行流程,从而有针对性的调优 SQL. DRDS分布式SQL引擎 — 执行计划介绍 前言 数据库系统中,执 ...