修改dll文件名

由于lib文件中包含着dll文件信息,所以直接修改lib名,在链接器进行链接的时候,lib文件中的内容没有发生变化,结果就是在程序运行时,程序还是会寻找命名为原来名的dll文件。所以我们直接修改相应的lib文件和dll文件名将会导致程序找不到dll文件

运行环境:wind10+vs2015+x64
修改方法:(以把tensorflow_cc.dll修改为tensorflow.dll为例)

  • 首先通过dumpbin工具导出dll中的内容
    DUMPBIN /path/tensorflow_cc.dll /EXPORTS /OUT:/path/tensorflow.def
  • 通过文本编辑器打开tensorflow.def ,内容如下。
Dump of file D:\Project\SciDnnDll\DependencyDll\tensorflow_cc.dll

File Type: DLL

Section contains the following exports for tensorflow_cc.dll

    00000000 characteristics
    5DE87B88 time date stamp Thu Dec  5 11:37:44 2019
        0.00 version
        1 ordinal base
        3131 number of functions
        3131 number of names

    ordinal hint RVA      name

        1    0 0304C6A0 ??$CreateMaybeMessage@VGPUOptions@tensorflow@@$$V@Arena@protobuf@google@@CAPEAVGPUOptions@tensorflow@@PEAV012@@Z
        2    1 0307F3F0 ??$CreateMaybeMessage@VNodeDef@tensorflow@@$$V@Arena@protobuf@google@@CAPEAVNodeDef@tensorflow@@PEAV012@@Z
        3    2 023EFF40 ??0?$MaybeStackArray@D$0CI@@icu_62@@AEAA@AEBV01@@Z
        .
        .
        .
        3130  C39 028FA770 utrie_unserializeDummy_62
        3131  C3A 028FA900 utrie_unserialize_62

Summary

    36A000 .data
        1000 .gfids
    1F8000 .pdata
    1047000 .rdata
    65000 .reloc
    32E0000 .text
        1000 .tls
    11000 _RDATA
  • 对文件进行整理,得到如下内容(用python操作更简单)。
EXPORTS

??$CreateMaybeMessage@VGPUOptions@tensorflow@@$$V@Arena@protobuf@google@@CAPEAVGPUOptions@tensorflow@@PEAV012@@Z        @1
??$CreateMaybeMessage@VNodeDef@tensorflow@@$$V@Arena@protobuf@google@@CAPEAVNodeDef@tensorflow@@PEAV012@@Z              @2
??0?$MaybeStackArray@D$0CI@@icu_62@@AEAA@AEBV01@@Z          @3
.
.
.
utrie_unserializeDummy_62                       @3130
utrie_unserialize_62                            @3131
  • 利用vs工具lib重新生成改名后的lib文件(我的机器是64位)
    LIB /DEF:/path/tensorflow.def /machine:X64 /OUT:/path/tensorflow.lib
  • 得到tensorflow.lib后,然后对tensorflow_cc.dll进行改名为tensorflow.dll即完成dll名称的修改。

期间遇到的问题:def文件中存在LIBRARY等语句时LIB识别不了文件(据我猜测,可能是由于版本和参考资料不同的问题)

参考资料:
https://blog.csdn.net/WL2002200/article/details/51418372/
http://suddymail.org/show-160-1.html
https://blog.csdn.net/b2292486308/article/details/53762806/

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值