在DLL中的一个函数中,怎样把这堆东西返回到主程序中啊? 我想返回这些东西回主程序,使用记录类型不行,不知道为什么?怎么办? menuid:pchar; menuname:pchar; menutxt:pchar; menut:pchar; mennts:pchar; menui:integer; menuf:pchar; 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 给你一个列子://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;begintry //根???更新SQL server with data.Tmsg dobeginappend;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;//成功返回1exceptmsgsend:=0;//失?返回0end;end;exports msgsend INDEX 1;beginApplication.CreateForm(TData, Data);//dll?用?自?初始化??ado?接end.//??模?DataModule?元unit msgdata;interfaceuses 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);begintrywith ADOCon do//??建立?sql server ?接 beginConnectionString:='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主?、用?、密?等信息的?活修改} exceptSHOWMESSAGE('?接??服?器失?!'); 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" http://expert.csdn.net/Expert/topic/1398/1398551.xml看了你的这个贴子,这样做就可以了,加个stdcall就可以解决了! 如何把消息接口写成OCX控件的属性? 新手问个字符串的问题 怎样使对象的数据保存到数据库里面才合理 can not file tihelp32.dcu? 第一次使用FASTREPORT,发现程序启动时很慢,不知各位是怎样解决的 怎么把日期转换为如20030508 如何修改数据表中某一行某一列的值啊(datasource1+query1)?马上给分 delphi+access 保存时出现的问题 在线等!!! 怎样使用outline控件显示目录啊? 大家幫忙看看這段代碼﹗﹗ 关于控件拖动的问题 帮忙翻译一下visa versa是什么?
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"
看了你的这个贴子,这样做就可以了,加个stdcall就可以解决了!