我只熟悉C语言,开发环境是经典的VC++ 6.0。最近成功实现了最基础的DLL调用,经过反复查阅资料终于搞定。好成果值得分享!本文秉持简洁实用的原则,为你清晰呈现核心步骤与关键要点。
1、 新建名为DLLTest的文件夹,并在其内部创建一个名为source的子文件夹。
2、 在source文件夹中创建add.c文件(不可用.cpp后缀),然后编写代码。
3、 保存
4、 按Win+R打开运行框,输入cmd启动命令行界面(注意空格)。
5、 使用命令cl /c E:VCfileDLLTestsourceadd.c /FoE:VCfileDLLTestsourceadd.obj对源文件进行编译,生成目标文件。编译过程严格遵循规范要求,确保路径准确、参数正确、输出无误。
6、 仅编译
7、 add.c 文件位于项目源码目录中(请替换为实际路径)。
8、 创建一个对象
9、 E……add.obj:对象文件存放于此(根据实际情况灵活调整)
10、 看,.obj文件已成功生成!
11、 若系统无法识别cl编译器,可按以下三步完成配置:首先,在系统属性→高级→环境变量中,于系统变量区域找到Path,点击编辑,在其末尾添加cl.exe所在目录的完整路径,并用英文分号与原有路径隔开;该路径通常为VC6.0Microsoft Visual StudioVC98Bin,具体需根据实际安装位置调整。其次,新建一个名为INCLUDE的系统变量,将其值设为VC6头文件所在目录,例如VC6.0Microsoft Visual StudioVC98Include。同样在系统变量中新建LIB变量,赋值为VC6库文件目录,如VC6.0Microsoft Visual StudioVC98Lib。全部设置完成后,重启命令行工具或开发环境,即可正常使用cl命令进行编译。注意路径中的反斜杠需使用英文格式,且所有路径均须准确对应本地VC6的实际安装位置。
12、 请继续输入,路径将动态调整。
13、 启动链接器,操作方式与cl编译器相似。连续执行两次链接命令,很快就能看到add.dll文件生成——目标文件夹中已赫然出现该动态库。
14、 DLL制作完成,接下来将进行调用。
15、 在DLLTest文件夹中新建源文件call_dll.c(或.cpp),并将add.dll一同复制至此目录。随后,在call_dll.c文件中粘贴以下代码内容。
16、 程序首先尝试加载名为add.dll的动态链接库,若加载失败则提示无法加载dll!。接着,通过函数名add在已加载的DLL中查找对应导出函数的地址,并将其强制转换为指定函数类型指针。若该函数未找到或获取地址失败,则输出找不到函数地址!。整个过程依赖Windows API实现运行时动态调用,需确保DLL文件存在、路径正确且导出函数名称与签名匹配,否则将导致调用异常或功能失效。
17、 调用函数f1(2,3)的结果为:
18、 编译链接运行成功,输出5!这刻属于你,程序员,必须加鸡腿!
