zoukankan      html  css  js  c++  java
  • __stdcall型dll转lib

        关于dll转lib文件的方法,网上的文章很多,但是我这次转的dll,输出函数是以 __stdcall 打头声明的。稍有不一样,顺便将网上的文章总结下。

    转换环境

        VS2008

    转换步骤

    • 打开 Visual Studio 2008 命令提示
    • 将<vs2008>\VC\bin 和 <vs2008>\Common7\IDE 加入到PATH路径:set PATH=%PATH%;<vs2008>\VC\bin;<vs2008>\Common7\IDE;
    • dumpbin /exports xxx.dll>xxx.def
    • 将xxx.def文件中以“ordinal hint RVA name”为表头的表中的 name 和 original 提取出来
    • 将xxx.def文件修改为如下:

    LIBRARY "xxx"

    EXPORTS

    <function_name>@<total bytes of parameters>=<function_name> @<ordinal>

    • lib /def:xxx.def 可生成 xxx.lib文件

    解释

    __stdcall的函数,在声明extern "C" 时,导出的函数名类似这样:_func@16

    • 前面加 "_" (注意xxx.def文件中,这个下划线不要加,导出时会自动加上的)
    • func:函数名
    • 中间加 "@"
    • 16:函数的所有参数总共占用的字节数

    注:不是__stdcall声明的dll,将上述文字中的红色部分去掉即可。

  • 相关阅读:
    JS 数组及函数的应用
    JavaScript 基础知识点
    利用css布局效果图
    css 区块与盒子模型
    JS数组及函数的应用
    JavaScript基础
    近期总结12.30
    层叠样式与盒子模型
    PHP课后小结 2017.12.22
    PHP课后小结 12.20
  • 原文地址:https://www.cnblogs.com/windtail/p/2644702.html
Copyright © 2011-2022 走看看