C++中dll文件的生成和调用

您所在的位置:网站首页 dll文件放在哪个文件 C++中dll文件的生成和调用

C++中dll文件的生成和调用

2023-10-15 13:54| 来源: 网络整理| 查看: 265

一、将 .cpp 文件编译成 .dll 文件

方法一:使用  __declspec(dllexport)   创建 dll 文件

1、创建文件夹 CreatDll

 

2、为该项目添加头文件 CreatDll.h

 

CreatDll.h 中代码如下:

#pragma once #ifdef CREATDLL_EXPORTS #define CREATDLL_API __declspec(dllexport) #else #define CREATDLL_API __declspec(dllexport) #endif // CREATDLL_EXPORTS extern "C" CREATDLL_API int TheAdd(int a, int b); /* 也可以直接写成如下的形式: extern "C" __declspec(dllexport) int TheAdd(int a, int b); #define CREATDLL_API __declspec(dllexport) 的作用是将 __declspec(dllexport) 用标识符 CREATDLL_API 来进行表示 */

3、为该项目添加源文件 CreatDll.cpp

 

 CreatDll.cpp 代码如下:

#include #include "CreatDll.h" int TheAdd(int a, int b){ return a + b; }

4、将该文件编译成 .dll 文件

  

编译成功之后结果如下:会产生 所需要的 .dll 文件和 .lib 文件

*********************************************************************************************************************

方法二:使用模块(.def)的方式来进行生成 .dll 文件

1、创建新的项目:CreateDll02

 

 

2、打开 CreateDll02.cpp 源文件,输入代码

  

// CreateDll02.cpp : 定义 DLL 应用程序的导出函数。 #include "stdafx.h" int TheAdd(int a, int b) { return a + b*100; } int TheSub(int c, int d) { return c - d; }

3、给该工程添加一个后缀名为 .def 文件,并在该文件中插入以下代码

 

LIBRARY CreateDll02 EXPORTS TheAdd @1 TheSub @2

【注意】:

其中LIBRARY语句用于指定动态链接库的名称,该名称与生成的 dll 文件名称一定要匹配。EXPORTS语句用于表明dll将要导出的函数,以及为这些导出函数指定的符号名。 可以在.def文件中的导出函数名后加 @n,如TheAdd   @1,TheSub  @2,表示要导出的函数顺序号。然后在C#中调用这些dll文件中的函数时,可以让 EntryPoint 属性值用该序号来代替相应的函数名。如:[DllImport("CreateDll01.dll" , EntryPoint ="#2" , CallingConvention = CallingConvention.Cdecl)] 中用序号 #2  来代替 TheSub 函数名,其原来的属性值应为:EntryPoint ="TheSub"该DLL编译成功后,打开工程中的Debug目录,同样也会看到 CreateDLL02.dll 文件。 二、C++程序调用 .dll 文件

1、新建控制台应用程序的项目,来调用以上所生成的 .dll 文件

2、将已经生成的 .dll 文件和 .lib 文件复制到控制台应用程序的项目文件夹中。

 

3、再将 CreatDll.h 文件也复制到控制台应用程序的项目文件夹中。

 

4、将复制过来的 .lib 文件添加到资源文件中

 

5、为控制台应用程序添加源文件  CallDll.cpp ,代码如下

#include #include "CreatDll.h" using namespace std; int main() { int x, y; cout > x; cout > y; return TheAdd(x, y); }

6、运行结果如下:

 

 

参考资料:

[1]  VS2017动态链接库(.dll)的生成与使用

[2]  C++编程笔记:dll的生成与使用

[3]  演练:创建和使用自己的动态链接库 (C++)

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3