我在delphi做了一个dll,在pb中调用,如果没有参数,没问题,
如果有参数,在pb调用就会出错.
代码如下:
library MailDll;uses
  SysUtils,Messages, Dialogs,
  Classes;var
ll_re:longint;
{$R *.res}function MailSend(ls_r:string):longint;far;register;
begin
    MessageDlg(ls_r, mtInformation, [mbOK], 0);
    ll_re:= 1;
    result:=ll_re;
end ;exports
 MailSend;
begin
end.

解决方案 »

  1.   

    function MailSend(ls_r:pchar):longint;far;register;or function MailSend(ls_r:pchar):longint;stdcall;
      

  2.   

    在Delphi中做DLL.把String类型都改成PChar型的.
      

  3.   

    建议用PCHAR,STRING会出很多问题
      

  4.   

    在Delphi中做DLL.把String类型都改成PChar型的,加 stdcall
      

  5.   

    function MailSend(ls_r:pchar):integer;stdcall
      

  6.   

    呵,想通过windows的体系传递参数,只能通过标准的类型,传递字符串只能用Pchar(字符指针)型。
      

  7.   

    只能用 pchar, string 是自生存管理的, 是个类, pb 不认识
      

  8.   

    使用PChar类型。
    Delphi中String和PB中String不一致.
      

  9.   

    一是用PChar取代String;
    二是要有参数回调方式,如Register或是Stdcall.