c++实现加载so动态库中的资源
发布时间 - 2026-01-10 22:14:15 点击率:次实例如下:
#include <stdio.h>
#include <dlfcn.h>
#include <stdlib.h>
#include <iostream>
//编译命令 g++ -m32 EncodeOrDecode.cpp -ldl -o edcode
//名字通过nm -D xxxxxx.so获取
using namespace std;
int main(int argc,char **argv){
void *handle = dlopen("./libpub_com_service.so",RTLD_LAZY);
if(!handle){
printf("open libpub error ,dlerror=%s\n",dlerror());
return -1;
}
string src = "05d7151349b7fe9b54306d90f9c938b3";
string desKey = "pub.%?d5";//58
printf("start ..src=[%s].....size=[%d].\n",src.c_str(),src.size());
//encode
typedef string (*encode_t)(const string encodeSrc,const string encodeKey);
encode_t encode = (encode_t)dlsym(handle,"_ZN10NS_PUB_API9DesEncodeESsSs");
if(!encode){
printf("not found encode function ,dlerror= %s \n",dlerror());
dlclose(handle);
return -1;
}
string encodeStr = encode(src,desKey);
printf("get the encode function success ..encodeStr=[%s].....size=[%d]\n",encodeStr.c_str(),encodeStr.size());
//decode
typedef bool (*decode_t)(const string decodeSrc,const string decodeKey,string &outResult);
decode_t decode = (decode_t)dlsym(handle,"_ZN10NS_PUB_API9DesDecodeESsSsRSs");
if(!decode){
printf("not found decode function ,dlerror= %s \n",dlerror());
dlclose(handle);
return -1;
}
string decodeOut;
bool ret = decode(encodeStr,desKey,decodeOut);
printf("get the decode function success ...ret=[%d]...decodeOut=[%s].....size=[%d]\n",ret,decodeOut.c_str(),decodeOut.size());
//end
dlclose(handle);
return 0;
}
以上就是小编为大家带来的c++实现加载so动态库中的资源全部内容了,希望大家多多支持~
# c
# 动态加载so
# C++ DLL动态库的创建与调用(类库
# 隐式调用)
# C++ Cmake的构建静态库和动态库详解
# VisualStudio2019构建C/C++静态库和动态库dll的问题 附源码
# 详解C++ 动态库导出函数名乱码及解决
# c++动态库调用的实现
# 小编
# 大家多多
# 库中
# 加载
# int
# std
# argc
# main
# namespace
# edcode
# ldl
# xxxxxx
# nm
# RTLD_LAZY
# libpub_com_service
# open
# printf
# dlopen
# argv
# char
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
音乐网站服务器如何优化API响应速度?
活动邀请函制作网站有哪些,活动邀请函文案?
如何注册花生壳免费域名并搭建个人网站?
Laravel怎么集成Log日志记录_Laravel单文件与每日日志配置及自定义通道【详解】
图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?
做企业网站制作流程,企业网站制作基本流程有哪些?
如何快速搭建安全的FTP站点?
如何安全更换建站之星模板并保留数据?
edge浏览器无法安装扩展 edge浏览器插件安装失败【解决方法】
Python文件操作最佳实践_稳定性说明【指导】
bootstrap日历插件datetimepicker使用方法
佛山企业网站制作公司有哪些,沟通100网上服务官网?
html5audio标签播放结束怎么触发事件_onended回调方法【教程】
如何基于云服务器快速搭建个人网站?
如何快速搭建高效WAP手机网站?
使用PHP下载CSS文件中的所有图片【几行代码即可实现】
Laravel如何使用Scope本地作用域_Laravel模型常用查询逻辑封装技巧【手册】
Laravel的辅助函数有哪些_Laravel常用Helpers函数提高开发效率
Laravel如何处理异常和错误?(Handler示例)
Laravel怎么处理异常_Laravel自定义异常处理与错误页面教程
b2c电商网站制作流程,b2c水平综合的电商平台?
专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?
详解阿里云nginx服务器多站点的配置
Laravel怎么实现模型属性转换Casting_Laravel自动将JSON字段转为数组【技巧】
Laravel Seeder怎么填充数据_Laravel数据库填充器的使用方法与技巧
EditPlus 正则表达式 实战(3)
微博html5版本怎么弄发超话_超话进入入口及发帖格式要求【教程】
PHP怎么接收前端传的文件路径_处理文件路径参数接收方法【汇总】
网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?
JavaScript数据类型有哪些_如何准确判断一个变量的类型
如何确保西部建站助手FTP传输的安全性?
独立制作一个网站多少钱,建立网站需要花多少钱?
Laravel如何与Docker(Sail)协同开发?(环境搭建教程)
Bootstrap CSS布局之列表
长沙企业网站制作哪家好,长沙水业集团官方网站?
北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?
Laravel中DTO是什么概念_在Laravel项目中使用数据传输对象(DTO)
微信小程序 HTTPS报错整理常见问题及解决方案
INTERNET浏览器怎样恢复关闭标签页_INTERNET浏览器标签恢复快捷键与方法【指南】
Laravel怎么实现一对多关联查询_Laravel Eloquent模型关系定义与预加载【实战】
如何快速建站并高效导出源代码?
jimdo怎样用html5做选项卡_jimdo选项卡html5实现与切换效果【指南】
如何快速上传自定义模板至建站之星?
如何制作一个表白网站视频,关于勇敢表白的小标题?
猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?
Laravel如何理解并使用服务容器(Service Container)_Laravel依赖注入与容器绑定说明
Claude怎样写约束型提示词_Claude约束提示词写法【教程】
Laravel用户密码怎么加密_Laravel Hash门面使用教程
Laravel怎么实现搜索高亮功能_Laravel结合Scout与Algolia全文检索【实战】
Laravel如何保护应用免受CSRF攻击?(原理和示例)

