我想返回这些东西回主程序,使用记录类型不行,不知道为什么?怎么办?
    menuid:pchar;
    menuname:pchar;
    menutxt:pchar;
    menut:pchar;
    mennts:pchar;
    menui:integer;
    menuf:pchar;

解决方案 »

  1.   

    给你一个列子://dll主程序
    library erpsend;
    uses  SysUtils,  Classes,  Forms,  msgdata in 'msgdata.pas' {data: TDataModule};
    {$R *.res}
    function msgsend(MsgNo:Integer;AccNo:String;sAccNo:String;sName:String;
    sDepNo:String;sDepName:String;SysName:String;msg:string):Integer;stdcall;
    begin
    try    //根???更新SQL server     
    with data.Tmsg do
    begin
    append;
    FieldByName('MsgNo').AsInteger:=MsgNo;
    FieldByName('AccNo').AsString:=AccNo;
    FieldByName('sAccNo').AsString:=sAccNo;
    FieldByName('sName').AsString:=sName;
    FieldByName('sDepNo').AsString:=sDepNo;
    FieldByName('sDepName').AsString:=sDepName;
    FieldByName('SysName').AsString:=SysName;
    FieldByName('sMsgTxt').AsString:=msg;
    FieldByName('sTime').AsString:=FormatDateTime('yyyy/mm/dd hh:mm',now);
    post;
    end;
    msgsend:=1;//成功返回1
    except
    msgsend:=0;//失?返回0
    end;
    end;exports  msgsend INDEX 1;
    begin
    Application.CreateForm(TData, Data);
    //dll?用?自?初始化??ado?接
    end.//??模?DataModule?元
    unit msgdata;
    interface
    uses  SysUtils, Classes, DB, ADODB,Dialogs;
    type  Tdata = class(TDataModule)
    ADOCon: TADOConnection;
    Tmsg: TADOTable;
    procedure DataModuleCreate(Sender: TObject);
    private    { Private declarations }
    public    { Public declarations }
    end;
    var data: Tdata;
    implementation
    {$R *.dfm}
    procedure Tdata.DataModuleCreate(Sender: TObject);
    begin
    try
    with ADOCon do
    //??建立?sql server ?接    
    begin
    ConnectionString:='Provider=SQLOLEDB.1;Persist Security 
    Info=True;Initial Catalog=erpmsg;Data Source=bill';
    {其中:erpmsg??料?名,bill?服?器名}
    Open('erpuser','erp');
    {其中:erpuser?用?名,erp?密?}
    end;
    tmsg.TableName:='msgtxt';
    tmsg.active:=true;
    {若此??取外部配置文件,如ini文件,可??SQL主?、用?、
    密?等信息的?活修改} 
    except
    SHOWMESSAGE('?接??服?器失?!'); 
    end;
    end;
    end.
    ??就可以在一些?ado支持不好的?言如vfp等中??ado???接?更新,避免了客?端odbc?置,不?在用???上要?一下sql客?端,最??的?法是?入如下注?表信息:
    Windows Registry Editor Version 5.00
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Client]
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Client\ConnectTo]
    "BILL"="DBMSSOCN,BILL,1433"
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Client\DB-Lib]
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Client\TDS]
    "BILL"="7.0"
      

  2.   

    http://expert.csdn.net/Expert/topic/1398/1398551.xml
    看了你的这个贴子,这样做就可以了,加个stdcall就可以解决了!