代码优化,WINDOWS下使用DUMPBIN提取DLL文件中的符号
2016-07-06 22:44
501 查看
一个跨平台软件,其中有一段代码,需要从动态链接库中提取出匹配指定规则的符号,在Linux中,使用了objdump对.so文件进行反汇编,提取符号,但在Windows当中,由于没有objdump,虽然有dumpbin也可以对.dll文件进行反汇编,但依赖于vc环境,所以之前一直是使用遍历匹配的方式,来查找匹配的符号,效率很低。今天突然想到以前的项目中,在windows里用sed时,只需要部署几个相关的exe和库,联想到,可否只部署dumpbin.exe以及相关的库?尝试着排除了下,竟然只需要三个文件:
dumpbin.exe
link.exe
mspdb100.dll(该文件名随dumpbin及VS版本变动)。
上代码:
dumpbin.exe
link.exe
mspdb100.dll(该文件名随dumpbin及VS版本变动)。
上代码:
#ifdef _WIN32 QString qExeCmd = "dumpbin -exports " + libFile; #else QString qExeCmd = "objdump -x " + libFile; #endif QProcess *proc = new QProcess(); proc->start(qExeCmd); proc->waitForFinished(1000); //等待执行完毕,同时防止程序长时间BLOCK QString qOutput(proc->readAllStandardOutput()); QRegExp regExp; regExp.setPattern("(T_[0-9,a-f,A-F]{4}_(Recv|Send)_ComponentRegister)"); for (int pos = 0; (pos = regExp.indexIn(qOutput, pos)) != -1; ) { QString topic_code_str = regExp.cap(1).mid(2, 4); // OTHER CODE pos += regExp.matchedLength(); }
相关文章推荐
- 学习笔记-Java中的xml文件读取之DOM解析
- BZOJ 4195 [Noi2015] 程序自动分析
- 【Struts2文件下载】struts.xml文件中配置action,访问路径问题
- 使用 Hibernate Tools 自动生成hbm.xml及model java文件
- POJ 2823 Sliding Window
- java文件上传!针对各种文件上传demo实列 文件上传以及数据库保存文件名以及路径名称:
- PHP 身份证号码验证代码
- (2)使用JDK开发WebService
- 如何在eclipse安装windowbuilder插件
- python高级编程---->深刻理解Python中的元类(metaclass)
- python虚拟环境
- [C#6] 5-自动属性增强
- 堆排序法(c/c++实现)
- unreachable code 报错
- Python 生成器 & 迭代器
- MATLAB安装libsvm无法使用解决办法(转)
- JAVA 三大版本
- Java的HelloWorld程序的真正用法
- 活跃性(Liveness)
- java垃圾回收机制,以及常用的回收算法