创建动态库具体的步骤是:(以DLL为例)
1、创建一个win32项目
2、选择应用程序类型:DLL;
附加选项:导出符号,勾上;
3、点击完成,就会生成动态库
4、 由于是导出库,要添加模块定义文件(.def)
这个文件,就是导出对应的接口,供外部调用的(详细解释可以百度了解)
5、编写这个模块自定义文件:
根据这个接口,实现功能即可;
6、调用动态库需要注意的地方:
(1)调用的约定:
动态库的调用约定:指调用程序和动态库之间协商的一种规则,用于确定函数参数传递的方式、返回值的传递方式、堆栈的维护方式等。
常用的调用约定有以下几种:
1. cdecl:函数参数从右到左依次压入栈中,调用者清理栈空间。
2. stdcall:函数参数从右到左依次压入栈中,被调用函数清理栈空间。
3. fastcall:函数的前两个参数通过寄存器传递,其余参数通过栈传递。
4. vectorcall:函数的前两个参数通过寄存器传递,其余参数通过栈传递,返回值也通过寄存器返回。
不同的操作系统和编译器可能使用不同的调用约定,因此在使用动态库时需要根据实际情况选择正确的调用约定。
(2)确认下动态库中是否把模块定义文件填好
有次别人调用动态库,说接口名称不对,后面看下原来项目少填了模块自定义文件。
想要查看当前动态库的接口名字,可以用Depends.exe这个软件进行查看。