请问高人如何用DELPHI编写DLL文件。并且调用,
最好给一个例子 OK

解决方案 »

  1.   

    delphi编程人员指南和delphi从入门到精通里都有啊。
    只要你建工程的时候类型选择dll,然后将你需要在外部调用的函数在工程体中export出来,就可以了。
    调用
    1 直接申明,静态调用
    function a() "a.dll" 
    2 函数指针,动态调用用loadlibary
      

  2.   

    [File]->New->"DLL Wizard"
    例子:library myDll;uses
      SysUtils,
      Classes,
      Printers,
      Windows,
      Messages;
    const
          str = 'abcdefg';{$R *.res}function ff(d: String): pChar;
    begin
          Result := d + str;
    end;
    exports
          ff;
    end.
    //写完上面代码后按 Ctrl+F9将得到 myDll(假如你的Project是以myDll保存)
    //=====================================
    在程序中调用myDll......
    implementation{$R *.dfm}function ff(a: String):pChar;stdcall; external 'myDll.dll';//假如myDll.dll是跟程序同一目录procedure TForm1.Button1Click(Sender: TObject);
    var
       s : String;
    begin
       s := 'I am Chinese.';
       ShowMessage(ff(s));
    end;
      

  3.   

    上面改一下
    function ff(d: String): pChar;
    begin
          Result := d + str;
    end;
    改为
    function ff(d: String): pChar;stdcall;
    begin
          Result := d + str;
    end;
      

  4.   

    你最好还是看看COM/DCOM/COM+这方面的书。把基础搞好。
      

  5.   

    function ff(d: String): pChar;stdcall;
    begin
          Result := d + str;
    end;
    报错请明示
    在str出错
      

  6.   

    function ff(d: String): pChar;stdcall;
    begin
          Result := d + str;
    end;是不是你的str没有申明,你自己不会加上去吗?
    const
          str = 'abcdefg';
    你加了没有?
      

  7.   

    function ff(d: String): pChar;stdcall;
    begin
          Result := pChar(d + str);
    end;
      

  8.   

    HMODULE LoadLibrary(
      LPCTSTR lpFileName   // file name of module
    );FARPROC GetProcAddress(
      HMODULE hModule,    // handle to DLL module
      LPCSTR lpProcName   // function name
    );BOOL FreeLibrary(
      HMODULE hModule   // handle to DLL module
    );这3个API可以完成动态加载DLL。
      

  9.   


     诸位已经说的很清楚了!
    1)制作方式:DLL程序用DELPHI可以很容易地做出来,MFC也有向导。但MFC生成的还
    有MFC方式的,我看了大家的说的都是WIN32方式。
    2)在中调用方式:静态/动态。
    3)COM/DCOM/COM+用了DLL的形式,只不过扩展名有变化(OCX,TLB...),
      如果你说的是这个,那看看书.