C++学习系列之DLL动态库使用
- 啰嗦
- 动态库的创建
- 动态库的调用函数生成
- 1.需要头文件函数定义(头文件)
- 2.需要函数定义(函数文件)
- 3.动态库中的头文件
- 4.动态库中的主文件
- 5.运行查看是否存在C#的调用的入口点
- 6.C#调用
- 总结
啰嗦
项目需要+自我学习和摸索。
动态库的创建
后续添加学习过程,先放如何产生使用函数。
动态库的调用函数生成
1.需要头文件函数定义(头文件)
class xx{
public:double addd(double x, double y);
}
2.需要函数定义(函数文件)
double xx::addd(double x, double y)
{return x + y;
}
3.动态库中的头文件
#ifdef IMPORT_DLL
#else
#define IMPORT_DLL extern "C" _declspec(dllexport)
#endif // IMPORT_DLL
IMPORT_DLL double addd(double x, double y);
4.动态库中的主文件
double addd(double x, double y)
{return x + y;
}
5.运行查看是否存在C#的调用的入口点
找到dumpbin.exe,运用CMD运行。在dumpbin.exe的相关路径下,使用下面语句打开对应的dll。
dumpbin -exports (dll的路径)
6.C#调用
public class test{[DllImport("DLL1.dll", CallingConvention = CallingConvention.Cdecl)]public static extern double addd(double x, double y);}
double y=test.addd(1,2);
总结
小Demo尝试,在做深度学习。