详解VS2010实现创建并生成动态链接库dll的方法

 更新时间:2022年12月21日 08:28:49   作者:欧特克_Glodon  
在某些应用程序场景下,需要将一些类或者方法编译成动态链接库dll,以便别的.exe或者.dll文件可以通过第三方库的方式进行调用,下面就简单介绍一下如何通过VS2010来创建动态链接库

1、目的

在某些应用程序场景下,需要将一些类或者方法编译成动态链接库dll,以便别的.exe或者.dll文件可以通过第三方库的方式进行调用,下面就简单介绍一下如何通过VS2010来创建动态链接库。

2、新建动态链接库

1) 打开VS2010,选择Visual C++,新建win32控制台应用程序

2) 选择应用程序类型为DLL,点击完成生成项目数据。

3、添加导出类,并修改项目配置

1) 添加MyFunction类,并设定为导出类

MyFunction.h

#pragma once

#ifndef MYTESTDLL_EXPORTS
#ifndef _DEBUG
#pragma comment (lib, "MyTestDll.lib")
#pragma message("     自动链接到 MyTestDll.lib.")
#else
#pragma comment (lib, "MyTestDlld.lib")
#pragma message("     自动链接到 MyTestDlld.lib.")
#endif
#endif

#ifdef MYTESTDLL_EXPORTS
#define MYTESTAPI __declspec(dllexport)
#else
#define MYTESTAPI __declspec(dllimport)
#endif

class MYTESTAPI CMyFunction
{
public:
	CMyFunction();
	~CMyFunction();

	// 加法
	int add(int nA, int nB);

	// 减法
	int minus(int nA, int nB);
};

MyFunction.cpp

#include "StdAfx.h"
#include "MyFunction.h"

CMyFunction::CMyFunction()
{
}

CMyFunction::~CMyFunction()
{

}

int CMyFunction::add(int nA, int nB)
{
	return nA + nB;
}

int CMyFunction::minus(int nA, int nB)
{
	return nA - nB;
}

4、修改项目配置

1) 修改dll文件生成位置

在输出目录将dll生成位置进行修改,以便寻找;同时为了方便区分Debug模式和Release模式,可将debug生成文件加上后缀-d。

2)修改lib文件生成位置

在 链接器-高级里面将lib的生成位置进行修改;同理,可将debug生成文件加上后缀-d。

3) 添加导出的预处理宏定义。

5、编译生成

编译后生产文件如下:

6、测试项目

用VS2010新建控制台程序exe,然后引入上面的动态链接库,进行使用测试。程序运行如下:

项目属性修改如图:

以上就是详解VS2010实现创建并生成动态链接库dll的方法的详细内容,更多关于VS创建生成动态链接库dll的资料请关注脚本之家其它相关文章!

相关文章

  • C语言如何输出中文

    C语言如何输出中文

    这篇文章主要介绍了C语言如何输出中文问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • C语言版猜数字小游戏

    C语言版猜数字小游戏

    这篇文章主要为大家详细介绍了C语言版猜数字小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-07-07
  • VS2022 无法打开源文件“stdio.h”问题解决

    VS2022 无法打开源文件“stdio.h”问题解决

    本文主要介绍了VS2022 无法打开源文件“stdio.h”问题解决,文中通过图文的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-06-06
  • 推荐几款C/C++的编译器、编译环境(非常全面的比较)

    推荐几款C/C++的编译器、编译环境(非常全面的比较)

    这篇文章主要介绍了C/C++编译器的一些易混淆概念,这里脚本之家小编特为大家分享一下,需要的朋友可以参考下
    2021-06-06
  • 浅谈C++不同继承之间的关系

    浅谈C++不同继承之间的关系

    本文主要介绍了浅谈C++不同继承之间的关系,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04
  • C++宽字符与普通字符的转换实例详解

    C++宽字符与普通字符的转换实例详解

    这篇文章主要介绍了C++宽字符与普通字符的转换实例详解的相关资料,需要的朋友可以参考下
    2017-06-06
  • c++将字符串转数字的实例方法

    c++将字符串转数字的实例方法

    在本篇文章里小编给大家整理的是关于c++将字符串转数字的实例方法,有需要的朋友们可以参考下。
    2020-02-02
  • 详解C++中常用的四种类型转换方式

    详解C++中常用的四种类型转换方式

    这篇文章主要为大家详细介绍了C++中常用的四种类型转换方式:static_cast<Type>、dynamic_cast<Type>、const_case<Type>和reinterpret_cast,感兴趣的可以了解一下
    2022-08-08
  • C++设计模式编程中简单工厂与工厂方法模式的实例对比

    C++设计模式编程中简单工厂与工厂方法模式的实例对比

    这篇文章主要介绍了C++设计模式编程中简单工厂与工厂方法模式的实例对比,文中最后对两种模式的优缺点总结也比较详细,需要的朋友可以参考下
    2016-03-03
  • C++ Qt开发之使用QUdpSocket实现UDP网络通信

    C++ Qt开发之使用QUdpSocket实现UDP网络通信

    Qt 是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,本文主要介绍如何运用QUdpSocket组件实现基于UDP的网络通信功能,需要的可以参考下
    2024-03-03

最新评论