解决方案 »

  1.   

    map好像不行 吧   ! 
      

  2.   

    "Write of address 0000000", 访问了空指针。
      

  3.   

    不明白是dll报的错误,还是调用dll的程序报错了。
    我感觉要是dll报错,你得有dll的源码才能定位错误位置!!!!
      

  4.   

    Delphi产生的map文件可以定位到是什么函数出错。但不能定位到具体行。
    另外, 对于DLL来说,加载的地址不确定。如果你编译DLL项目时没有指定Image Base,
    一般默认为$0040000,这个地址和Delphi产生的.exe地址是相同的。
    因此,被这个.exe加载时会进行基址重定位。你的例子中,地址$02AF1B5D这里产生了写异常。
    $02AF1B5D这个地址显然是被重定位过的。所以,你必须记录模块加载地址,这才能进行分析。
      

  5.   

    DLL默认image base 地址是$10000000吧
      

  6.   

    各位大大,我的dll是开发SPI程序的,由系统加载,无法调试!
      

  7.   

    使用Delphi的 Run->Parameters
    指定Host Application为IE,是可以调试的。注意,最好生成了符号文件。回 dd_zhouqian 的。
    你建立一个空dll,看Project->Options->Linker就可以看到Image base
    ,都是默认的$00400000。
      

  8.   

    loadlibrary的返回值就是Image base
      

  9.   


    无法调试,因为SPI是由系统加载的, 用Delphi的 Run->Parameters 方法不行,IE不会自己加载我的dll