有两种 dll 函数导出方式。
Create a module definition (.def) file and use the .def file when building the DLL. Use this approach if you want to export functions from your DLL by ordinal rather than by name.
1.定义 .def 文件统一导出
Use the keyword __declspec(dllexport) in the function’s definition.
2.在导出的函数前面加上 __declspec(dllexport)
演示工程:
https://github.com/dss875914213/dll_demo
定义 .def 文件
至少需要编写两部分
- 定义名称
- 导出函数名称
LIBRARY BTREE
EXPORTS
Insert @1
Delete @2
Member @3
Min @4
dll 和调用dll工程的调用约定需要一样,不然会报错,不识别导出的函数。
__declspec(dllexport)导出
__declspec(dllexport) int Add(int a, int b);
__declspec(dllexport) int Add(int a, int b)
{
return a + b;
}
使用 DUMPBIN 工具查看 dll 中导出的函数
The exports table of a DLL can be viewed by using the DUMPBIN tool with the /EXPORTS option.
1.打开下面的工具
2.运行下面的命令
DUMPBIN /EXPORTS xxx.dll
参考文献:
https://docs.microsoft.com/en-us/cpp/build/exporting-from-a-dll?view=msvc-160
https://blog.csdn.net/qq_21033779/article/details/79046826