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

一、生成动态链接库:

1、打开VS2015->文件->新建->项目->Visual C++->Win32->Win32控制台应用程序->将名称改为dll_generate->确定

2、出现Win32应用程序向导->下一步->在“应用程序类型”中选择“DLL”->在“附加选项”中选择“空项目”->完成

3、视图->解决方案管理器->右键“头文件”->添加->新建项->选择“头文件”->命名为dll_generate->添加

4、点击进入dll_generate头文件,输入代码:

#pragma once
//该宏完成在dll项目内部使用__declspec(dllexport)导出
//在dll项目外部使用时,用__declspec(dllimport)导入
//宏DLL_IMPLEMENT在dll_generate.cpp中定义
#ifdef DLL_IMPLEMENT
#define DLL_API __declspec(dllexport)
#else
#define DLL_API __declspec(dllimport)
#endif  

namespace scsc
{
    double DLL_API Mul(double a, double b);
}

  

5、视图->解决方案管理器->右键“源文件”->添加->新建项->选择“C++文件(.cpp)”->命名为dll_generate->添加

6、点击进入dll_generate源文件,输入代码:

//------------------ dll_generate.cpp ----------------
//注意此处的宏定义需要写在#include "dll_generate.h"之前
//以完成在dll项目内部使用__declspec(dllexport)导出
//在dll项目外部使用时,用__declspec(dllimport)导入
#define DLL_IMPLEMENT
#include"dll_generate.h"
#include <iostream>  

using namespace std;  

namespace scsc
{
    double Mul(double a, double b)
    {
        double c = a*b;
        return c;
    }
}

  

7、点击生成->生成解决方案->由此可以在“工程文件路径\dll_generate\Debug”中得到dll_generate.dll和dll_generate.lib文件,在“工程文件路径\dll_generate\dll_generate”中得到dll_generate.h文件

二、调用动态链接库:

1、文件->新建->项目->Visual
C++->Win32->Win32控制台应用程序->将名称改为dll_test->确定

2、出现Win32应用程序向导->下一步->在“应用程序类型”中选择“控制台应用程序”->在“附加选项”中选择“空项目”->完成

3、视图->解决方案管理器->右键“源文件”->添加->新建项->选择“C++文件(.cpp)”->命名为main->添加

4、将前面得到的dll_generate.h和dll_generate.lib复制到工程文件路径\dll_test\dll_test中,将dll_generate.dll复制到工程文件路径\dll_test\Debug中

5、视图->解决方案管理器->右键“头文件”->添加->现有项->选择dll_generate.h->添加

6、在main.cpp中输入代码:

//------------------ main.cpp -------------------
#include "dll_generate.h"  

#pragma comment(lib, "dll_generate.lib")
#include <iostream>
using namespace scsc;
using namespace std;  

void main()
{
    double a = Mul(3, 2);
    cout << a << endl;
    system("pause");
}

  

7、运行程序,即可看到已成功生成和调用DLL

时间: 2024-11-06 03:44:21

VS2015环境下生成和调用DLL动态链接库的相关文章

VS2013环境生成和调用DLL动态链接库

创建动态库方法: 创建动态库是生成 .dll .lib 两个个文件 文件 -> 新建 -> 项目 -> win32控制台应用程序 项目名称:DLLGenerator 应用程序类型:DLL  附加选项:空项目 建立源文件dllgenerator.cpp(不需要主函数,只写你需要动态调用的函数) // 整数加法和乘法 int Add(int a, int b){ return a + b; } int Mul(int c, int d){ return c * d; } 建立头文dllgen

Windows下C语言调用dll动态链接库

dll是windows下的动态链接库文件,下面记录一下在windows下如何调用C语言开发的dll动态链接库. 1.dll动态链接库的源代码 hello_dll.c #include "stdio.h" _declspec(dllexport) void test_print(char const *str) { printf("%s\n", str); } _declspec(dllexport) int test_add(int a, int b) { retu

vs2010环境下生成dll文件

vs2010环境下生成dll文件 1,新建win32工程,选中DLL项目,如下图:2,分别添加头文件和cpp文件 #ifndef LIB_H#define LIB_Hextern "C" int _declspec(dllexport)add(int x,int y);    // 声明为C编译.链接方式的外部函数#endif #include "stdafx.h"int add(int x,int y){    return x+y;} 3,新建win32控制台工

Linux环境下使用eclipse开发C++动态链接库程序

Linux中也有类似windows中DLL的变成方法,只不过名称不同而已.在Linux中,动态链接叫做Standard Object,生成的动态链接文件为*.so.详细请参考相关文档. 开发环境:Eclipse 3.4.2 G++:4.3.2 1. 创建动态链接库 (1)在Eclipse中创建新的C++工程 File->New->Project->C++->C++ Project,选择Shared Library. (2)创建源代码文件 File->New->Sourc

windows环境下 生成git公钥和私钥

windows环境下 生成公钥和私钥 上传代码到远程仓库的时候需要秘钥进行验证是否本人上传的.打开Git目录下的Git Bash 输入ssh-keygen,回车 可直接不输入路径,使用默认路径(c/Users/Administrator/.ssh/) 按照提示要输入两次密码,但是如果输入了,每次操作操作git库时都要输入密码,所以选择不输入密码 密码输入结束后,提示已生成秘钥 打开c:/Users/Administrator/.ssh/,在文件中,id_rsa是私钥文件,id_rsa.pub是公

高并发环境下生成唯一流水号

高并发环境下生成唯一流水号的主要思路有两种: 第一种是有一个控制全局的变量确保每个流水号的唯一性: 第二种是每台机器根据算法自己生成在系统中无冲突的流水号: 假设流水号的长度是128位(16字节): 第一种实现方法:(1)采用数据库的自增主键确保唯一性: Database.java package mine; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import j

在VS2008环境下编写C语言DLL,并在C++和C#项目下调用 (转载)

1.编写DLL a)文件--打开--新建项目--Win32,右侧Win32项目,填写好项目名称,点击“下一步”, 应用程序类型选择:“DLL(D)”,附加选项:空项目(E),然后完成. b)编写头文件(edrlib.h): #ifdef __cplusplus   #define EXPORT extern "C" __declspec (dllexport)   #else   #define EXPORT __declspec (dllexport)   #endif      E

VBA 调用DLL动态链接库

在ArcMap中引用动态链接库       我在VB6下编译生成了一个动态链接库文件VBAPrj.dll,其中有一类模块VBACls,此类模块有一个方法Test(Doc As Object).        常见的方法有三种(作者:张业新): 1.打开VBA编辑器,点"工具"菜单下的"引用"命令,在引用对话框中引用该动态链接库.        调用代码如下:          Dim VBACls As New VBAPrj.VBACls          VBAC

Python调用DLL动态链接库——ctypes使用

最近要使用python调用C++编译生成的DLL动态链接库,因此学习了一下ctypes库的基本使用. ctypes是一个用于Python的外部函数库,它提供C兼容的数据类型,并允许在DLL或共享库中调用函数. 一.Python调用DLL里面的导出函数 1.VS生成dll 1.1 新建动态链接库项目 1.2 在myTest.cpp中输入以下内容: // myTest.cpp : 定义 DLL 应用程序的导出函数. // #include "stdafx.h" #define DLLEXP