文件名称:c/c++中如何实现动态库动态加载的完整工程示例代码
文件大小:7KB
文件格式:ZIP
更新时间:2022-09-22 17:59:40
动态库加载 LoadLibrary dlopen __declspec(dllex _declspec(dllimp
c/c++中如何实现动态库动态加载的完整工程示例代码: 本代码将将win、linux加载、卸载动态库,并从动态库链接模块中获取类实例或函数地址等封装成统一的API接口,并集成在dllLoad.h/dllLoad.cpp中实现。构建一个注册类RegisterM,内置一个map容器,用来装载加载的动态库模块,并统一提供模块索引、及从模块中实现类实例获取、删除、函数地址获取等功能。 在动态库实现方面,提供一个虚拟元类MetaObject,然后在库的cpp文件中建立子类继承该类,实现其具体功能,并在cpp文件中直接提供函数API,这些API函数不在头文件中声明,需要extern关键字修饰。
【文件预览】:
dll_test
----build_linux()
----bin()
----build_win()
----src()
--------dlload.cpp(904B)
--------test.cpp(1KB)
--------register.cpp(2KB)
--------dlload.h(360B)
--------register.h(1KB)
----CMakeLists.txt(3KB)
----lib()
--------metaObject.h(473B)
--------CMakeLists.txt(766B)
--------testlib.cpp(872B)