C++ Builder 编写DLL库文件,并在库文件中调用第三方DLL
C++编写DLL动态库文件,我还是喜欢用RAD Studio的C++ Builder ,VC++编译后依赖库是真心不好整。但使用C++ Builder唯一不爽的是字符串的处理。下面我用个我在工作中自己写的小项目做讲解----如何编写通用的非托管的DLL,并在DLL中调用第三方DLL。
第一步,打开C++ Builder 10.4,新建DLL项目:
然后,在弹出框中这么选,并点OK:
第二步,给项目文件、代码文件、头文件重命名,并保存项目所有文件:
然后,我们把项目命名为:MyDllTest,代码文件也为:MyDllTest(.cpp),头文件也为:MyDllTest(.h),并保存在桌面的MyCode目录。
第三步,编写头文件(MyDllTes.h),声明DLL的导入、导出函数:
第四步,因为需要调用第三方DLL,所以把第三方DLL的头文件或说明文档找到,并在我们项目中的头文件(MyDllTest.h)中定义对应第三方DLL函数的指针类型:
第五步,编写DLL导出函数前,我们先定义或编写一些全局的代码,如引入头文件、公共函数、全局变量等:
1)我们先在代码文件(MyDllTest.cpp)中包含可能需要的.h头文件:
2)编写可能需要的公共函数、全局变量,如字符串类型的命名空间、map对象、字符串比较函数等:
到此,我们可以先编译一下是否有报错?
注:如果编译报错,需要设置:
3)我们把第三方DLL放在本DLL动态库文件(MyDllTest.dll)所在目录中,在同一目录就是为了方便我们下一步调用它:
4)因为第三方DLL动态库文件在我们编写的DLL的同一目录中,所以我要写一个函数来获取我们编写的DLL被应用程序调用时的目录,也就是我们的DLL调用第三方DLL文件的目录:
第六步,至此,我们需要做的准备工作就全部完成。因此,我们这步就开始编写DLL的导出函数的功能实现代码:
1)代码文件中导出函数名及参数与头文件的声明必须完全一致:
2)调用第三方DLL,实现读卡的功能:
注:在try前定义了7个带指针的局部变量,必须在__finally中释放这些变量。
最后,编译生成MyDllTest.dll动态库文件。
相关文章
- 电脑键盘指法+常用快捷键文字及图片详解
- 机械键盘灯亮按键无反应(机械键盘灯亮按键无反应什么原因)
- Keychron Q14 Max键盘开售:小键盘左置、Alice配列,1298元起
- Keychron K15 Max矮轴机械键盘开售:75%Alice配列,567元起
- 单手35键设计,Keychron旗下Lemokey推出X0机械键盘
- 线上故障排查全套路盘点,运维大哥请自查
- 学习Pandas中操作Excel,看这一篇文章就够了
- 对不起,我把APP也给爬了(对不起我把你弄脏)
- Navigating global shifts and forging a path for emerging economies
- 多目标追踪小抄:快速了解MOT的基本概念