CC 动态库动态加载完整工程示例代码

2020-07-27

C/C++ 动态库动态加载完整工程示例代码

项目描述

本项目提供了一个完整的工程示例代码,展示了如何在C/C++中实现动态库的动态加载。代码涵盖了Windows和Linux平台下的动态库加载、卸载操作,并将这些操作封装成统一的API接口,集成在dllLoad.hdllLoad.cpp文件中。

主要功能

  1. 动态库加载与卸载
    • 支持在Windows和Linux平台上加载和卸载动态库。
    • 通过统一的API接口实现动态库的加载和卸载操作。
  2. 模块管理
    • 构建了一个注册类RegisterM,内置一个map容器,用于装载加载的动态库模块。
    • 提供模块索引功能,方便管理和查找已加载的动态库模块。
  3. 类实例与函数地址获取
    • 从动态库模块中获取类实例或函数地址。
    • 提供类实例的获取、删除以及函数地址的获取等功能。
  4. 动态库实现
    • 提供一个虚拟元类MetaObject,在动态库的cpp文件中建立子类继承该类,实现具体功能。
    • cpp文件中直接提供函数API,这些API函数不在头文件中声明,需要使用extern关键字修饰。

使用说明

  1. 编译与运行
    • 根据目标平台(Windows或Linux),使用相应的编译器编译项目。
    • 运行生成的可执行文件,查看动态库加载与卸载的效果。
  2. API调用
    • 参考dllLoad.hdllLoad.cpp中的API接口,调用相关函数实现动态库的加载、卸载、类实例获取等功能。
  3. 动态库开发
    • 在动态库的cpp文件中,继承MetaObject类,实现具体功能。
    • 使用extern关键字修饰函数API,确保在动态加载时能够正确获取函数地址。

注意事项

  • 本项目代码适用于Windows和Linux平台,请根据实际需求选择合适的平台进行编译和运行。
  • 在动态库开发过程中,确保函数API使用extern关键字修饰,以避免链接错误。

贡献

欢迎提交Issue和Pull Request,共同完善本项目。

下载链接

CC动态库动态加载完整工程示例代码