C:\>dumpbin -exports dll2.dll
Microsoft (R) COFF/PE Dumper Version 9.00.30729.01
Copyright (C) Microsoft Corporation.  All rights reserved.
Dump of file dll2.dllFile Type: DLL  Section contains the following exports for dll2.dll    00000000 characteristics
    4A163F0E time date stamp Fri May 22 13:58:38 2009
        0.00 version
           1 ordinal base
           1 number of functions
           1 number of names    ordinal hint RVA      name          1    0 00011078 a = @ILT+115(_a)  Summary        1000 .data
        1000 .idata
        2000 .rdata
        1000 .reloc
        1000 .rsrc
        4000 .text
       10000 .textbssC:\>
------------------------------------------------------
name下面a = @ILT+115(_a) 具体是什么意思  可以动态调用 调用函数名还是a
昨天写的dll 显示的是a = @ILT+115(_a)   今天一查看就只有a了 
今天写了个DLL 开始查看也是a = @ILT+115(_a)这个格式 拷贝在其他盘放了会 又成只有a了
有写了一个DLL 这会放了10多分钟了  没变  虽然可以用 但对这个事很纳闷
a = @ILT+115(_a)像这个函数名的有个缺点  我注入到非vc写的程序(例如计算器) 会弹出没有mfc90.dll 大概这个名字 
当它的名字变成 a以后注入什么程序都没问题......
对这个很纳闷搜索@ILT+ 好像都是些反汇编 我看不懂

解决方案 »

  1.   

    函数a()按C方式导出,名字就是_a会弹出没有mfc90.dll?
    你的DLL里是否用到了MFC的东西?如果用到了,那是肯定的。
      

  2.   

    应该没有用到 
    很简单的代码
    #include "windows.h"extern"C" _declspec(dllexport) void a(){
    MessageBoxA (GetActiveWindow(),"aaa","VC",0);
    }
      

  3.   

    C:\>dumpbin -exports dll2.dll
    Microsoft (R) COFF/PE Dumper Version 9.00.30729.01
    Copyright (C) Microsoft Corporation.  All rights reserved.
    Dump of file dll2.dllFile Type: DLL  Section contains the following exports for dll2.dll    00000000 characteristics
        4A163F0E time date stamp Fri May 22 13:58:38 2009
            0.00 version
               1 ordinal base
               1 number of functions
               1 number of names    ordinal hint RVA      name          1    0 00011078 a  Summary        1000 .data
            1000 .idata
            2000 .rdata
            1000 .reloc
            1000 .rsrc
            4000 .text
           10000 .textbss.........变回来了