大哥我用二进制作为dll中函数的返回值遇到如下问题:
想在开始时把myresult每一位全置为0,有一项正确时,就把某一位置为1。
function CheckFaMail(ReceivePerson:string;SendPerson:string;Topic:string):boolean;stdcall;
var
pmessage:poe5_messageInfo;
messagelist:Tlist;
//UserPerson,UserReserve,UserTopic:string;
x,index:integer;
MyResult:boolean;
begin
MyResult:=0;
messagelist:=Tlist.Create;
Read_OE_File('已发送邮件.dbx',messagelist);//读已发送邮件.dbx文件信息,放入messagelist中
if messagelist.Count >0 then
begin
for x:=0 to messagelist.Count-1 do
begin
pmessage:=messagelist.Items[x];
if pmessage^.Receipt=ReceivePerson then//检查收件人是否正确
begin
MyResult or 100;
if pmessage^.From=SendPerson then //检查发件人是否正确
Myresult or 010;
if pmessage^.Subject=Topic then //检查主题是否正确
Myresult or 001;
break;
end;
end;
end;
messagelist.Free;
//StrPCopy(Result,MyResult);
Result:=MyResult;
shl
end;
想在开始时把myresult每一位全置为0,有一项正确时,就把某一位置为1。
function CheckFaMail(ReceivePerson:string;SendPerson:string;Topic:string):boolean;stdcall;
var
pmessage:poe5_messageInfo;
messagelist:Tlist;
//UserPerson,UserReserve,UserTopic:string;
x,index:integer;
MyResult:boolean;
begin
MyResult:=0;
messagelist:=Tlist.Create;
Read_OE_File('已发送邮件.dbx',messagelist);//读已发送邮件.dbx文件信息,放入messagelist中
if messagelist.Count >0 then
begin
for x:=0 to messagelist.Count-1 do
begin
pmessage:=messagelist.Items[x];
if pmessage^.Receipt=ReceivePerson then//检查收件人是否正确
begin
MyResult or 100;
if pmessage^.From=SendPerson then //检查发件人是否正确
Myresult or 010;
if pmessage^.Subject=Topic then //检查主题是否正确
Myresult or 001;
break;
end;
end;
end;
messagelist.Free;
//StrPCopy(Result,MyResult);
Result:=MyResult;
shl
end;
MyResult:=0;if ....
MyResult :=MyResult + $10;
if ..
MyResult :=MyResult + $01;
...