关于Self.Handle做为函数参数的问题? |
尚未結案
|
fangwy
中階會員 ![]() ![]() ![]() 發表:99 回覆:139 積分:62 註冊:2003-09-10 發送簡訊給我 |
|
william
版主 ![]() ![]() ![]() ![]() ![]() 發表:66 回覆:2535 積分:3048 註冊:2002-07-11 發送簡訊給我 |
|
fangwy
中階會員 ![]() ![]() ![]() 發表:99 回覆:139 積分:62 註冊:2003-09-10 發送簡訊給我 |
谢谢版主的解答,但因我英文水平较差,所以不是很明白,只知可能是传入了空的Handle,现将源码COPY出来,请帮我查查问题所在,谢谢!
错误是:有时执行相应函数时出错,有时执行函数不出错但在Close时出错.
procedure TLoginF.BtnOkClick(Sender: TObject);
var
daTmp:array[0..120]of char ;
begin
SvHandle:=Self.Handle;
if not fGetMultiuser(Self.Handle) then
begin
raise Exception.Create('系统初始化错误!');
end; if not fGetTaxId(Self.Handle) then
begin
raise Exception.Create('系统初始化错误!');
end; if not fGetOwner(Self.Handle,daTmp) then
begin
raise Exception.Create('系统初始化错误!');
end; pGetState(Self.Handle); if not InsertLog('系统管理','用户登录','0','用户成功登录!') then
begin
raise Exception.Create('记录日志失败!');
end; pbRet:=True;
Close;
end;
|
william
版主 ![]() ![]() ![]() ![]() ![]() 發表:66 回覆:2535 積分:3048 註冊:2002-07-11 發送簡訊給我 |
|
fangwy
中階會員 ![]() ![]() ![]() 發表:99 回覆:139 積分:62 註冊:2003-09-10 發送簡訊給我 |
对不起,我可能没说清楚,
MessageBox API在fGetMultiuser, fGetTaxId内调用,现列出fGetMultiuser源码:
function fGetMultiuser(rHndl: hwnd): boolean; //获取分户编号
var
dbRetu: Byte; //调用动态库的返回值变量
dbRet: boolean;
diTmp, diNum, i: integer;
daMult: array[0..500] of Char;
begin
dbRet := false;
FillChar(daMult, 400, #0);
dbRetu := TD_GetMultiuser(daMult); //获取分户编号(.DLLs函数)
if dbRetu <> 0 then
begin
ShowErr(rHndl, dbRetu); //使用MessageBox API的函数
end
else
begin
dbRet := true;
diTmp := 0;
diNum := Ord(daMult[diTmp]) * 256 Ord(daMult[diTmp 1]);
SetLength(SYS_HOUS, diNum);
for i := 0 to diNum - 1 do
begin
diTmp := diTmp 2;
SYS_HOUS[i] := inttostr(Ord(daMult[diTmp]) * 256 Ord(daMult[diTmp 1]));
end;
end;
fGetMultiuser := dbRet;
end;
MessageBox API是为了提示.DLLS函数返回的错误信息,在ShowErr中,源码如下:
function ShowErr(rHndl: hwnd; riErr: Byte): string;
var
dsErr: string;
begin
if riErr = 1 then
begin
MessageBox(rHndl, '税控卡上电错误!', '提示', 0);
dsErr := '税控卡上电错误';
end
else if riErr = 2 then
begin
MessageBox(rHndl, '用户卡上电错误!', '提示', 0);
dsErr := '用户卡上电错误';
end
.
.
.
end;
|
william
版主 ![]() ![]() ![]() ![]() ![]() 發表:66 回覆:2535 積分:3048 註冊:2002-07-11 發送簡訊給我 |
|
fangwy
中階會員 ![]() ![]() ![]() 發表:99 回覆:139 積分:62 註冊:2003-09-10 發送簡訊給我 |
|
william
版主 ![]() ![]() ![]() ![]() ![]() 發表:66 回覆:2535 積分:3048 註冊:2002-07-11 發送簡訊給我 |
|
fangwy
中階會員 ![]() ![]() ![]() 發表:99 回覆:139 積分:62 註冊:2003-09-10 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |