请各位高手们帮忙解决这个问题:能否在DLL中的输出函数中,反回值为记录类型(record)值?(150分)

  • 主题发起人 主题发起人 taibu
  • 开始时间 开始时间
T

taibu

Unregistered / Unconfirmed
GUEST, unregistred user!
function DBConnect(aApp:TApplication;DllScr:TScreen;DBCnn:TADOConnection;SqlDB,AccessPw:Pchar;
pwErrorNum:integer):Boolean;stdcall;
begin
CoInitialize(Nil);
Application:=aApp;
Screen:=DllScr;
FSqlDB:=SqlDB;
FPwErrorNum:=PwErrorNum;
DllDBCnn:=TADOConnection.Create(Application);
DllDBCnn:=DBCnn;
frmLogin:=TfrmLogin.Create(Application);
frmLogin.Edit1.Text :=AccessPw;
frmLogin.ShowModal;
if frmLogin.ModalResult =mrOk then
begin
Result:=True;
end;
end;
exports
DBConnect;
以上代码为Dll(登入窗口做成DLL)中的某输出函数的代码,请问各位,能否把该函数的返回值(上面为Boolean类型)改成记录类型?因为我想返回以下几个值(以下变量在DLL中都有定义):
username(用户名) pchar
power(用户权限) pchar
success(登入是否成功) boolean
请问各位,在DLL中应该如何定义,在主程序中又应该如何调用?
 
高手都来还没上班吗?怎么还不见各位来救救我?
 
返回指针吧.
 
to duhai_lee
能否说详细点呢?
 
type
pTmyRec = ^TmyRec;
TmyRec = record
str: string;
...
end;

在主程序和DLL中
定义一个记录类型和一个指向该记录类型的指针,把指针作为参数

参考
http://www.delphibbs.com/delphibbs/dispq.asp?lid=3427093
 
要这样返回指针就可以了,不过其他语言调用就要声明同样的结构(类型要完全一致)。
 
多人接受答案了。
 
敢问搂主整明白了?嘿,有那么简单?
 
to uiit
我现在确实又遇到了新问题,即主程序退出时出错了,请问,是什么原因呢?
 
后退
顶部