VS2010动态链接库的生成及调用(C++)
一、动态链接库的生成
首先利用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++)的更多相关文章
- VS2015环境下生成和调用DLL动态链接库
一.生成动态链接库: 1.打开VS2015->文件->新建->项目->Visual C++->Win32->Win32控制台应用程序->将名称改为dll_ge ...
- VS2013 C++ 生成与调用DLL(动态链接库) 需要验证
转载:https://blog.csdn.net/s978697043/article/details/82429802 一.创建动态链接库(生成.dll .lib 两个文件) 文件→新建→项目 选择 ...
- C/C++中动态链接库的创建和调用
DLL 有助于共享数据和资源.多个应用程序可同时访问内存中单个DLL 副本的内容.DLL 是一个包含可由多个程序同时使用的代码和数据的库.下面为你介绍C/C++中动态链接库的创建和调用. 动态连接库的 ...
- C++(VS2012)DLL动态库的生成和调用
DLL动态链接库的生成: 首先打开VS2012,新建——项目——Win32控制台应用程序(项目名称:ConsoleApplication1)——空项目 新建一个源文件source.cpp 先用控制台e ...
- vc6静态库的生成和调用
转自vc6静态库的生成和调用 1.静态库的生成: 在vc6.0++中Ctrl+N选择Projects下的Win32 Static Library,Project name:SumLib,点击OK,下一 ...
- [转贴] C/C++中动态链接库的创建和调用
DLL 有助于共享数据和资源.多个应用程序可同时访问内存中单个DLL 副本的内容.DLL 是一个包含可由多个程序同时使用的代码和数据的库.下面为你介绍C/C++中动态链接库的创建和调用. 动态连接库的 ...
- 分享:根据webservice WSDL地址自动生成java调用代码及JAR包
分享:根据webservice WSDL地址自动生成java调用代码及JAR包使用步骤:一.安装java 并配置JAVA_HOME 及 path二.安装ANT 并配置ANT_HOME三.解压WsdlT ...
- Keil中LIB库的作用、生成与调用
LIB库有什么用,一个简单的例子就是Silicon Labs为C8051F单片机USB提供的USBXpress LIB库了,如USB发送数据.接收数据等,都是通用性很强的函数,但因为保密的原因,这个函 ...
- Keil C 里面Lib库文件的生成与调用
源:Keil C 里面Lib库文件的生成与调用
随机推荐
- C# ListView 控件和 INotifyPropertyChanged 接口
ListView 控件和 DataGridView 控件 ListView 是跟 Winform 中 DataGridView 用法以及显示效果差不多的一个 WPF 控件,可以通过列表的方式方便的显示 ...
- Google File System 见解 (作业)
Google File System ——见解 近年来,大街小巷都传遍的大数据,引起了社会的一阵学习大数据狂热,造成任何公司在招聘人员的时候都会注上一条,会大数据的优先考虑:但是,从另一方面来说,这狂 ...
- 使用ASP.NET Core支持GraphQL -- 较为原始的方法
GraphQL简介 下面是GraphQL的定义: GraphQL 既是一种用于 API 的查询语言也是一个满足你数据查询的运行时. GraphQL 对你的 API 中的数据提供了一套易于理解的完整描述 ...
- C# 《编写高质量代码改善建议》整理&笔记 --(四)资源管理&序列化
1.显示释放资源需继承接口IDisposable 什么是资源:C#中每一个类型都代表一种资源,而资源又分为以下两类. 托管资源:由CLR管理分配和释放的资源,即从CLR里new出来的对象. 非托管资源 ...
- SpringBoot入门教程(二十一)IntelliJ IDEA配置Quartz启动项
本地运行:
- springboot~Integer和int如何选择,Integer的意义何在
今天说一下自己在项目中遇到的问题,然后总结一下Integer引用类型和int值类型 关于默认值 Integer默认为null int默认为0 为什么把数据实体设计成Integer或者不是int 大叔认 ...
- matplotlib安装
Windows / Linux pip 相关依赖 Python (>= 2.7 or >= 3.4) NumPy (>= 1.7.1) setuptools dateutil (&g ...
- 4.5管道实现机制和模拟构建管道「深入浅出ASP.NET Core系列」
希望给你3-5分钟的碎片化学习,可能是坐地铁.等公交,积少成多,水滴石穿,谢谢关注. 管道实现机制 要了解管道的实现机制,我们必须要深入框架的源码,幸亏微软开源了,我们可以访问GitHub的地址来下载 ...
- .NET ClrProfiler ILRewrite 商业级APM原理
Demo:https://github.com/caozhiyuan/ClrProfiler.Trace 背景 为了实现自动.无依赖地跟踪分析应用程序性能(达到商业级APM效果),作者希望能动态修改应 ...
- MySQL高可用复制管理工具 —— Orchestrator使用
背景 在上一篇「MySQL高可用复制管理工具 —— Orchestrator介绍」中大致介绍了Orchestrator的功能.配置和部署,当然最详细的说明可以查阅官方文档.本文开始对Orchestra ...