• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C语言 > c++实现加载so动态库中的资源

c++实现加载so动态库中的资源

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了mopsoc++程序,c++动态库,c++动态链接库,c++ 调用动态库,c++标准程序库等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

实例如下:

#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;

}
</div>

以上就是小编为大家带来的c++实现加载so动态库中的资源全部内容了,希望大家多多支持~

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • c++实现加载so动态库中的资源

相关文章

  • 2017-05-28C++基础入门教程(五):new和delete
  • 2017-05-28C语言判断字符是否为可打印字符的方法
  • 2017-05-28利用C++实现从std::string类型到bool型的转换
  • 2017-05-28C语言中的fscanf()函数与vfscanf()函数使用
  • 2017-05-28C语言中getch()函数详解及简单实例
  • 2017-05-28DSP中浮点转定点运算--举例及编程中的心得
  • 2017-05-28深入遍历二叉树的各种操作详解(非递归遍历)
  • 2017-08-17文件的合并与拆分
  • 2017-05-28C++用mysql自带的头文件连接数据库
  • 2017-05-28C语言实现牛顿迭代法解方程详解

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • Linux c中define的用法小结
    • C++设计模式之代理模式
    • C++ 中"priority_queue" 优先级队列实例详解
    • 举例讲解C语言对归并排序算法的基础使用
    • 关于define与C 的内存
    • c/c++中变量的声明和定义深入解析
    • 判断机器大小端的两种实现方法
    • 通过一个小例子来简单理解C语言中的内存空间管理
    • C++通过TerminateProess结束进程实例
    • C语言统计字符个数代码分享

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有