C++编写动态库DLL

Posted 不溯流光

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++编写动态库DLL相关的知识,希望对你有一定的参考价值。

https://www.cnblogs.com/zhaiyf/p/8548963.html

 

注意新建工程:
文件->新建项目->win32项目->下一步->DLL->勾选预编译头文件,导出符号->完成。

自动生成3个头文件和3个cpp文件。

 

/*******相与枕藉乎舟中,不知东方之既白*******/

C++编写动态库(.DLL)给C#调用方法

1、在头文件中按照如下格式编写函数申明

extern "C" __declspec(dllexport) double __stdcall Add(double a, double b);

 

2、在cpp文件中按照如下实现函数

double __stdcall Add(double a, double b)

return a + b;

 

 

3、创建一个def文件,用于描述导出后的函数名,防止生成不一致问题和其他语言调用问题

技术图片

 

def文件中编写内容如下:

LIBRARY "Dll1"
EXPORTS
 Add @ 1

 

 

4、创建C#工程,在对应的类中增加如下代码直接调用C++动态库中的函数

[DllImport(@"F:\\C++\\DllTest\\Dll1\\Release\\Dll1.dll")]
static extern double Add(double a, double b);

 

以上是关于C++编写动态库DLL的主要内容,如果未能解决你的问题,请参考以下文章

C++类封装成DLL动态链接库

C++编写动态库(.DLL)给C#调用方法

想【C++ 】高手发起挑战,请教一个【动态链接库 dll 和 类成员函数 显式链接】问题

如何用VS2010编写动态链接库DLL

C++封装Halcon算法动态链接库Dll补充

C#调用C++动态库接口函数和回调函数