Dll

有没有什么办法可以获得DLL文件里的函数或过程名啊?

解决方案 »

  1.   

    我在DELPHI中调用一个其它语言写的DLL时,可在取某函数的地址时老是为空。在VB中却可以用该函数。(大小写我都与在VB中调用的一样)
      

  2.   

    你怎么取的?代码贴出来看看,还有确定加载Dll成功了吗?
      

  3.   

    用eXeScope可以看到DLL里面的函数名
      

  4.   

    Private Declare Sub ModifySpeed Lib "speedup.dll" (ByVal NewSpeed As Long)
    上面是在VB中的调用。
    在DELPHI中我用动态加载,代码如下:
    procedure TForm1.Button3Click(Sender: TObject);
    type
        TModifySpeed = procedure(NewSpeed:integer);stdcall;
    var
      speedup_Thd:Thandle;
      Tf_ModifySp:TModifySpeed;
      TFpc:TFarProc;
    begin
      speedup_Thd := loadLibrary('speedup.dll');
      if speedup_Thd > 0 then
      try
        TFpc:=GetProcAddress(speedup_Thd,'ModifySpeed');  //在这里时TFpc取的值为空
        if TFpc<>nil then   
        begin
          Tf_ModifySp := TModifySpeed(TFpc);
          Tf_ModifySp(10000);
        end
        else
          ShowMessage('ModifySpeed函数没有找到'); 
      finally
        FreeLibrary(speedup_Thd);
      end
      else
        ShowMessage('speedup.dll没有找到');
    end;
      

  5.   

    To:
        fanli625(范蠡)
      eXeScope该怎么用。找了半天也没看到该函数的帮助。
      

  6.   

    eXeScope 是个软件,下面是它的下载网址
    http://www.skycn.com/soft/2128.html
      

  7.   

    谢谢各位的回答。我用tdump可以查看DLL里的函数或过程名称和地址。