dll生成lib


来自http://suddymail.org/show-160-1.html
没有尝试过,仅供参考。
其他链接:http://hi.baidu.com/songxiuying/item/af67755203840f948d12ed6d


为无LIB的DLL制作LIB函数符号输入库   
  本文介绍了在VC中针对无LIB时的DLL隐式链接,制作可供VC++使用的LIB函数符号输入库。具体步骤如下:   
    
    一、使用VC++的工具DUMPBIN将DLL中的导出函数表导出到一定义(.DEF)文件   
  EXAMPLE:     
    
  DUMPBIN   VideoDeCoder.dll   /EXPROTS   /OUT:VideoDeCoder.def   
    二、将导出的.DEF文件整理为一符合.DEF个数的函数导出文件   
  EXAMPLE:VideoDeCoder.DEF   文件内容如下Dump   of   file   VideoDeCoder.dll                                                                       
                                                                                                                                                  
                  File   Type:   DLL                                                                                                     
                                                                                                                                                  
                      Section   contains   the   following   exports   for   VideoDeCoder.dll       
                                                                                                                                                  
                                        0   characteristics                                                                         
                          3D49E48F   time   date   stamp   Fri   Aug   02   09:46:55   2002                       
                                  0.00   version                                                                                         
                                        1   ordinal   base                                                                               
                                      11   number   of   functions                                                                 
                                      11   number   of   names                                                                         
                                                                                                                                                  
                          ordinal   hint   RVA             name                                                                     
                                                                                                                                                  
                                      1         0   00010F60   _TM_ClearDecoderBuff@4                                 
                                      2         1   00010E80   _TM_CloseDecoder@4                                         
                                      3         2   00010F00   _TM_DecodePicture@4                                       
                                      4         3   00010ED0   _TM_DecodePictureHeader@4                           
                                      5         4   00010FD0   _TM_GetFileEnd@4                                             
                                      6         5   00011030   _TM_GetUValue@4                                               
                                      7         6   00011060   _TM_GetVValue@4                                               
                                      8         7   00011000   _TM_GetYValue@4                                               
                                      9         8   00010E10   _TM_OpenDecoder@8                                           
                                    10         9   00010F30   _TM_ReturnType@4                                             
                                    11         A   00010F90   _TM_SetFileEnd@8                                             
                                                                                                                                                  
                      Summary                                                                                                               
                                                                                                                                                  
                                  2000   .data                                                                                             
                                  1000   .rdata                                                                                           
                                  1000   .reloc                                                                                           
                                15000   .text     
  按照以下方法整理:   
  1)添加LIB说明   LIBRARY   "VideoDeCoder"                         ;"xx"为DLL名称   
  DESCRIPTION   "VideoDeCoder   library"       
  2)去掉导出函数说明端以外的内容,在LIB说明下添加   "EXPROTS"   说明导出函数   LIBRARY   "VideoDeCoder"   
  DESCRIPTION   "VideoDeCoder   library"   
    
  EXPORTS   
                          ordinal   hint   RVA             name                                                       
                                                                                                                                    
                                      1         0   00010F60   _TM_ClearDecoderBuff@4                           
                                      2         1   00010E80   _TM_CloseDecoder@4                           
                                      3         2   00010F00   _TM_DecodePicture@                           
                                      4         3   00010ED0   _TM_DecodePictureH                           
                                      5         4   00010FD0   _TM_GetFileEnd@4                               
                                      6         5   00011030   _TM_GetUValue@4                                 
                                      7         6   00011060   _TM_GetVValue@4                                 
                                      8         7   00011000   _TM_GetYValue@4                                 
                                      9         8   00010E10   _TM_OpenDecoder@8                             
                                    10         9   00010F30   _TM_ReturnType@4                               
                                    11         A   00010F90   _TM_SetFileEnd@8     
  3)将所有的函数放至行首,去掉   "hint"   和   "RVA"   数据,留下函数的序号   "ordinal"   ,在序号前加上   "@"   符号   形成   "_导出函数名@参数字节和   @序号"   此种格式(__stdcall   方式调用导出的函数符号是   "函数名称@参数字节和").   最后形成.DEF文件如下:   LIBRARY   "VideoDeCoder"   
      DESCRIPTION   "VideoDeCoder   library"   
    
      EXPORTS   
                
      TM_ClearDecoderBuff@4                           @1           
      TM_CloseDecoder@4                                   @2           
      TM_DecodePicture@4                                 @3           
      TM_DecodePictureHeader@4                     @4           
      TM_GetFileEnd@4                                       @5           
      TM_GetUValue@4                                         @6           
      TM_GetVValue@4                                         @7           
      TM_GetYValue@4                                         @8           
      TM_OpenDecoder@8                                     @9           
      TM_ReturnType@4                                     @10           
      TM_SetFileEnd@8                                     @11     
    三、使用VC++的LIB工具,带/DEF:(.def文件名)   /MACHINE:IX86(80X86机器),就输出符合VC++格式的的LIB文件了.     
  EXAMPLE:LIB   /DEF:VideoDeCoder.def   /MACHINE:IX86   
    四、接时带上LIB文件链接;注意的是当有些动态库DUMPBIN的只有函数名,无"@nn"的参数格式,如C++Builder写的DLL,输出就只有 函数名符号,链接时就会报错:   error   LNK2002:unresolved   external   symbol   "functionname@nn"   提示程序中引入的函数符号无法识别,这时只要将DEF文件中相应的函数名称改为functionname@nn方式,重新建立   LIB,重新链接即可.   

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/353529.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

maven使用junit3_JUnit,Logback,带有Maven 3的Maven

maven使用junit3在本系列中,我们已经学习了建立基本的Spring MVC应用程序并学习了如何在Spring MVC中处理表单 。 现在该讨论更多涉及的话题了。 但是,在我们涉足更深的领域之前,让我们先进行一些基础设置。 单元测试 我不是TDD传播者。 我在…

LeetCode(90):子集 II

Medium! 题目描述: 给定一个可能包含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。 说明:解集不能包含重复的子集。 示例: 输入: [1,2,2] 输出: [[2],[1],[1,2,2],[2,2],[1,2],[] ] 解题思路&…

MFC程序在其他机器运行

为了保证MFC程序能够在没有安装VS的机器上运行,可以采用如下方法。1. 单个的小程序,可以静态编译MFC,但不适用于有很多dll的工程。2. 拷贝VS安装目录Microsoft Visual Studio 11.0\VC\redist\x86\Microsoft.VC110.MFC下的4个文件和Microsoft …

ACM搜索题目总结

ACM搜索题目总结 格式说明:题目名后面列出个人此题的大致难度(对菜鸟而言) POJ 1069 -The Bermuda Triangle(难) http://acm.pku.edu.cn/JudgeOnline/problem?id1069 题意:用给定三角型填充六边形 解法:此题的思想上精…

JPA中按身份引用

在上一篇文章中 ,我提到我选择通过其主键而不是类型来引用其他聚合。 在处理大型或复杂域模型时,我通常使用这种方法(也称为断开域模型)。 在这篇文章中,让我尝试进一步解释如何在JPA中完成它。 请注意,生成…

在idea下开发出现404错误

用idea开发时&#xff0c;我们一般要设置project strucure里的Modules-Sources,里面对应的有Sources,tests,Resources,Test Resources&#xff0c; Excluded。 同时也可以在maven的pom里面build标签里设置。 <resource><directory>src/main/webapp</directory&g…

MFC利用控制台输出调试信息的方法

VS2010中只要输入以下信息即可&#xff1a;editbin /SUBSYSTEM:CONSOLE $(OUTDIR)$(TargetName).exeVC6.0稍微复杂&#xff1a;打开菜单“Project”-“Setting”&#xff08;或者Alt-F7&#xff09;&#xff0c;打开选项卡“Post-builder step”&#xff08;Post-build步骤&…

一念成佛,一念成魔

一念成佛&#xff0c;一念成魔 前几天&#xff0c;因我与寝友的一次错误导致电脑系统崩溃&#xff0c;连开机都开不了了。可我发现我并不是很生气&#xff0c;只是用玩笑话调侃了他一下。后来想想&#xff0c;要是放在以前&#xff0c;我一定会大发脾气&#xff0c;几天都不去理…

Jquery操作基本筛选过滤器

<!DOCTYPE html> <html><head><meta charset"UTF-8"><title>层级选择器</title><link rel"stylesheet" href"../../css/style.css" type"text/css"/><script type"text/javascript…

nodejs微信小程序+python+PHP计算机网络在线考试系统-计算机毕业设计推荐

目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 3 2.1 nodejs简介 4 2.2 express框架介绍 6 2.4 MySQL数据库 4 第3章 系统分析 5 3.1 需求分析 5 3.2 系统可行性分析 5 3.2.1技术可行性&#xff1a;…

Visual C++利用互斥量同步线程实现文件读取进度条

忘了原文的位置了。 一、前言 文件读取进度条的实现可以有很多种方法,常用的是在读取文件的过程中隔一定时间向对话框发送消息以控制进度条的位置,但是这种方法很难确定隔多少时问发送一个消息,因为文件的大小是不确定的,时间间隔长了可能文件已经读取完了还没有发送消…

组件模块化使用

// 使用$attr可以直接在父元素上拿数据让子元素使用或者是孙元素使用 <template><div>props:{{name}},{{age}} 或者 {{$props[name]}},{{$props[age]}} <br>attrs: {{$attrs[gender]}} 在$attrs里面只会有props没有注册的属性</div> </template>…

jboss与nginx_JBoss BRMS与JasperReports进行报告

jboss与nginx介绍 Jasperreports是可免费下载的库&#xff0c;可用于为Java EE应用程序生成丰富的报告。 本指南还提供了使用Jasper iReport设计器生成报告模板的步骤。 软件需求 JBoss BRMS 5.3&#xff08;从客户门户网站http://access.redhat.com &#xff09; JasperRep…

VS2010发布、打包安装程序超全超详细

找不到原文链接 1、 在vs2010 选择“新建项目”“其他项目类型”“ Visual StudioInstaller “安装项目”&#xff1a; 命名为&#xff1a;Setup1 。 这是在VS2010中将有三个文件夹&#xff0c; 1.“应用程序文件夹”表示要安装的应用程序需要添加的文件&#xff1b; 2.“…

IntelliJ IDEA2017 激活方法 最新的

今天打开电脑&#xff0c;非常不幸&#xff0c;idea出问题了&#xff01;&#xff01;&#xff01;大部分人以前应该都是用的以下方法&#xff1a;1. 到网站 http://idea.lanyus.com/ 获取注册码2.填入下面的license server:http://intellij.mandroid.cn/   http://idea.imsx…

介绍HawkFX

如前所述&#xff0c; 我开始玩JRubyFX 。 对我来说&#xff0c;学习一些新的最佳方法可以解决用例&#xff0c;因此我开始为Hawkular创建库存浏览器。 为什么选择JRubyFX&#xff1f; 让我们首先从“什么是JRubyFX”开始&#xff1f; JRubyFX是通过JRuby引入Ruby世界的JavaFX…

C++ Unicode和ANSII转换

构造字符串和转换字符串是不一样的&#xff0c;构造字符串时往往是添加标记&#xff0c;这个过程其实是告诉编译器应该怎么在内存中存储&#xff1b;一旦构造好&#xff0c;对于内存中的一块地址&#xff0c;这些标记符就没用了&#xff0c;这个时候就得使用转换函数转换了。对…

创建win32 dll

新建项目->win32项目&#xff08;不是win32控制台&#xff09;->下一步中选择dll&#xff08;如果想生成lib&#xff0c;勾选导出符号&#xff09;。此时编译会生成对应的dll文件&#xff0c;但没有lib&#xff0c;只有有导出符号的时候才会生成lib文件。导出符号可以使用…

蓝桥杯 有几个星期日的问题.

1949年的国庆节&#xff08;10月1日&#xff09;是星期六。 今年&#xff08;2012&#xff09;的国庆节是星期一。那么&#xff0c;从建国到现在&#xff0c;有几次国庆节正好是星期日呢&#xff1f;只要答案&#xff0c;不限手段&#xff01;可以用windows日历&#xff0c;win…

storm问题汇总

1.删除了本地topology导致无法启动nimbus 删除storm的自定义的库中的数据 删除zookeeper中配置的dataDir中的数据 重启服务即可 转载于:https://www.cnblogs.com/ives/p/9165850.html