ordinal hint RVA      name          1    0 0001107D add = @ILT+120(?add@@YAHHH@Z)
用的VS2008 SP1 win32空项目里的 空DLL  
怎么样才能去掉符号?
add = @ILT+120(?add@@YAHHH@Z)
这符号怎么和一般的不一样? 这个怎么有个=?  
看孙鑫的深入浅出VC  里面建个.def  里面声明下函数名就行了 
我试了好几种方法都不行... 我的是xp sp3 系统的问题?  
孙鑫的代码直接编译也是后面有=什么什么的
求解.........

解决方案 »

  1.   

    用def就可以了,应该是你设置的方法不对。
      

  2.   

    project->Properties...->configuration Properties->Linker->Input->Module Definition File里设置def
      

  3.   


    这样吗?
    //----------------dll1.def
    LIBRARY "dll1"
    EXPORTS
    add
      

  4.   

    def 文件格式不正确
    标准格式如下:
    ; Codecs.def : Declares the module parameters for the DLL.LIBRARY      "Codecs"
    DESCRIPTION  'Codecs Windows Dynamic Link Library'EXPORTS
        ; Explicit exports can go here
    DecodeB64 = _DecodeB64@12 @1 private
    EncodeB64 = _EncodeB64@16 @2 private
      

  5.   

    DecodeB64 = _DecodeB64@12 @1 private 
    EncodeB64 = _EncodeB64@16 @2 private 这个是什么意思 前面是倒出函数名  
    @12 @1 private            
    @16 @2 private 
    这2个是固定的吗?  怎么一个12 一个16
      

  6.   

    那个数字是__stdcall调用约定的函数所需的堆栈深度
      

  7.   

    ?add@@YAHHH@Z这个就是函数名。int __cdecl add(int,int);
    DecodeB64 = _DecodeB64@12 @1 private DecodeB64:函数名
    @12:参数占的大小
    @1导出序号
      

  8.   

    DecodeB64 = _DecodeB64@12 @1 private 
     _DecodeB64这个要用?add@@YAHHH@Z这个吗?
      

  9.   

    LIBRARY      "dll1"
    DESCRIPTION     'dll1   Dynamic   Link   Library'   
    EXPORTS
    add = _add@8 @1 private 1>dll1.def(2) : warning LNK4017: DESCRIPTION 语句不支持目标平台;已忽略
    1>   正在创建库 D:\My Documents\Visual Studio 2008\Projects\dll1\Debug\dll1.lib 和对象 D:\My Documents\Visual Studio 2008\Projects\dll1\Debug\dll1.exp
    1>dll1.exp : error LNK2001: 无法解析的外部符号 _add@8
    1>D:\My Documents\Visual Studio 2008\Projects\dll1\Debug\dll1.dll : fatal error LNK1120: 1 个无法解析的外部命令