我想调用里面的函数,可以导入到库中,但是调用提示初始化失败,我用regsvr32注册也没法成功,但是原程序就这一个dll,怎么调用? 求助高人。Dll下载地址:http://www.xun6.com/file/998d17721/testdll.rar.html这个DLL是按键精灵里面的一个后台DLL模拟。 答出边并上贴一齐给分。

解决方案 »

  1.   

    还有可能是.NET DLL,先区分一下
      

  2.   

    我想调用里面的函数,可以导入到库中,但是调用提示初始化失败,我用regsvr32注册也没法成功,但是原程序就这一个dll如果是NET的DLL就要换成别的方式调用了。
      

  3.   

    下了他的看了
    是VC7  写的一个 activex Dll 
      

  4.   

    DELPHI导入的时候不能根据DLL生成TLB是比较麻烦的。NET可以,可以先用NET导入,然后翻译成DELPHI的。
      

  5.   

    http://www.xun6.com/file/9d34f2510/s.rar.html  这个是那个调用的程序,模拟鼠标单击的。
      

  6.   

    你的知道DLL中的接口函数,在你主应用程序中首先声明该接口函数在这个DLL中,然后就可以直接调用该接口函数
      

  7.   

    不是所有COM DLL都内置类型库信息的。
      

  8.   

    我用工具給你掃描了一下這個BKGND.DLL的接口函數,一共有以下22個函數,供樓主參考:DllCanUnloadNow 0x10002e80 0x00002e80 1 (0x1) BKGND.DLL C:\Documents and Settings\Administrator\桌面\testdll\BKGND.DLL 導出函數 DllGetClassObject 0x10002e40 0x00002e40 2 (0x2) BKGND.DLL C:\Documents and Settings\Administrator\桌面\testdll\BKGND.DLL 導出函數 DllRegisterServer 0x10002eb0 0x00002eb0 3 (0x3) BKGND.DLL C:\Documents and Settings\Administrator\桌面\testdll\BKGND.DLL 導出函數 IQMPlugin::FindCenterColor 16 (0x10) BKGND.DLL C:\Documents and Settings\Administrator\桌面\testdll\BKGND.DLL COM 方法 IQMPlugin::FindColor 14 (0xe) BKGND.DLL C:\Documents and Settings\Administrator\桌面\testdll\BKGND.DLL COM 方法 IQMPlugin::FindColorEx 15 (0xf) BKGND.DLL C:\Documents and Settings\Administrator\桌面\testdll\BKGND.DLL COM 方法 IQMPlugin::GetPixelColor 13 (0xd) BKGND.DLL C:\Documents and Settings\Administrator\桌面\testdll\BKGND.DLL COM 方法 IQMPlugin::KeyDown 2 (0x2) BKGND.DLL C:\Documents and Settings\Administrator\桌面\testdll\BKGND.DLL COM 方法 IQMPlugin::KeyPress 1 (0x1) BKGND.DLL C:\Documents and Settings\Administrator\桌面\testdll\BKGND.DLL COM 方法 IQMPlugin::KeyUp 3 (0x3) BKGND.DLL C:\Documents and Settings\Administrator\桌面\testdll\BKGND.DLL COM 方法 IQMPlugin::LeftClick 4 (0x4) BKGND.DLL C:\Documents and Settings\Administrator\桌面\testdll\BKGND.DLL COM 方法 IQMPlugin::LeftDoubleClick 7 (0x7) BKGND.DLL C:\Documents and Settings\Administrator\桌面\testdll\BKGND.DLL COM 方法 IQMPlugin::LeftDown 8 (0x8) BKGND.DLL C:\Documents and Settings\Administrator\桌面\testdll\BKGND.DLL COM 方法 IQMPlugin::LeftUp 9 (0x9) BKGND.DLL C:\Documents and Settings\Administrator\桌面\testdll\BKGND.DLL COM 方法 IQMPlugin::MiddleClick 6 (0x6) BKGND.DLL C:\Documents and Settings\Administrator\桌面\testdll\BKGND.DLL COM 方法 IQMPlugin::MoveTo 12 (0xc) BKGND.DLL C:\Documents and Settings\Administrator\桌面\testdll\BKGND.DLL COM 方法 IQMPlugin::RightClick 5 (0x5) BKGND.DLL C:\Documents and Settings\Administrator\桌面\testdll\BKGND.DLL COM 方法 IQMPlugin::RightDown 10 (0xa) BKGND.DLL C:\Documents and Settings\Administrator\桌面\testdll\BKGND.DLL COM 方法 IQMPlugin::RightUp 11 (0xb) BKGND.DLL C:\Documents and Settings\Administrator\桌面\testdll\BKGND.DLL COM 方法 IQMPlugin::SendString 17 (0x11) BKGND.DLL C:\Documents and Settings\Administrator\桌面\testdll\BKGND.DLL COM 方法 IQMPluginStandard::Get_Plugin_Description 1 (0x1) BKGND.DLL C:\Documents and Settings\Administrator\桌面\testdll\BKGND.DLL COM 方法 IQMPluginStandard::Get_Plugin_Interpret_Template 2 (0x2) BKGND.DLL C:\Documents and Settings\Administrator\桌面\testdll\BKGND.DLL COM 方法
      

  9.   

    找到个C#调用的方法,高手能翻译成Delphi的不?http://www.dotsafe.cn/blog/article.asp?id=232
      

  10.   

    除3個導出函數外,其它全部是COM方法,直接引用,定義變量,調用就是了...
      

  11.   

    用delphi.net可以调用吧
    参考此处:
    http://www.fx120.net/dnjc/delphi/zh/200512271048549901.htm
      

  12.   

    再給你一個類似的調用實例:var
      ReadCard_F: TReadCard_F;function SDT_OpenPort(iPort:Integer):Integer;stdcall;external 'sdtapi.dll';
    procedure TReadCard_F.FormCreate(Sender: TObject);
    var
      jFini:TIniFile;
    begin
      inherited;
      jFini:=TIniFile.Create(ExtractFilePath(Application.ExeName)+'mzdm.dll');
      try
        with jFini do
        begin
          iPort:=ReadInteger('Setup','USB',0);
        end;
      finally
        jFini.Free;
      end;
      SDT_OpenPort(iport);
      isReadingCard:=False;
      gg:=GetSearchServiceSoap(False,'',nil);
    end;
      

  13.   


    调用COM方法跟调用DLL的导出方法一样?
      

  14.   

    舉列:如何用 C# 编写 DLL 或 COM 以便 DELPHI 可以调用....NET的DLL可以调用COM.也可以从COM调用. Delphi开发的COM就可以调用.NET的DLL.
    在你的环境变量Path中加入 C:Program FilesMicrosoft Visual Studio .NET 2003SDKv1.1Bin; C:WINNTMicrosoft.NETFrameworkv1.1.4322 随便建立一个ClassLibrary编译成DLL文件切换到MS-DOS命令行下面,运行: C:>regasm out ClassLibrary1.DLL /regfile:ClassLibrary1.reg 上面的命令行是注册我们的.NET组件,并且产生了一个备用的注册表文件。对应Windows的注册COM文件命令:regsvr32 c: est.dll . 在.NET下面,注册.NET组件就需要上面的regasm命令了 然后在MS-DOS命令行下面,运行: C:>tlbExp ClassLibrary1.dll /out:ClassLibrary1.tlb 上面的命令行表示将会产生一个.NET组件的类型库有了TLB文件也就和正常的COM组件一样了,运行Delphi导入类型库文件TLB...... 和正常的COM调用一摸一样...