ASP中调用DELPHI动态链接库,如何使用控件的事件? (200分)

  • 主题发起人 主题发起人 guming1
  • 开始时间 开始时间
G

guming1

Unregistered / Unconfirmed
GUEST, unregistred user!
如何使得UDP的ONDATAREVIED指针指向我自己创建对象的方法。而且一旦UDP的ONDATARECEIVED事件一旦触发,就触发我自己的方法,并且自动把获得消息的BYTE数传给我自己的方法

MUDP.OnDataReceived := MyUDP.DataReceived;

我已经这样处理,但是我的方法始终没有触发。
 
fRemoteHost := pRemoteHost
//设置远程主机
fRemotePort := pRemotePort
//设置远程主机端口
fLocalPort := pLocalPort
//设置当前机器端口

NMUDP := TNMUDP.Create(nil);
NMUDP.RemoteHost := fRemoteHost;
NMUDP.RemotePort := strtoint(fRemotePort);
NMUDP.LocalPort := strtoint(fLocalPort);
NMUDP.ReportLevel := Status_Basic;

MyUDP := TMyUDP.Create;
MyUDP.Key := 55;
NMUDP.OnDataReceived := MyUDP.DataReceived;
NMUDP.OnStatus := MyUDP.MsgStatus;

type
TMyUDP=Class(TObject)
Public
Key:LongWord;
MyStatus:String;
Procedure DataReceived (Sender: TComponent
NumberBytes: Integer
FromIP: String
Port: Integer);
procedure MsgStatus(Sender: TComponent
status: String);
End;

procedure TMyUDP.DataReceived(Sender: TComponent
NumberBytes: Integer
FromIP: String
Port: Integer);
var
Codes:Array of Byte
//Codes为收到的数据流指针
Tmp:LongWord;
Msg:Array of Byte;
begin
Key := 88;
Exit;
Tmp := 0;
setlength(Codes,NumberBytes);
setlength(Msg,NumberBytes);
ReceiveMsgInfo((Sender as TNMUDP),Codes,Msg,NumberBytes);
CopyMemory(@Tmp,@Codes[0],4);
Key := Tmp;
end;

procedure TMyUDP.MsgStatus(Sender: TComponent
status: String);
begin
Mystatus := status;
end;

但是状态值和KEY值一直没有改变,也就是该时间没有触发,为什么?等待高手的回答,盼,盼
 
各位大侠,救命阿。

我把端口通讯做成DLL,供ASP调用。但无法接收消息。

发送消息过程没有问题。在DELPHI中调试,可以收到消息。但是使用我自己的接收消息方法指向UDP的DATARECEIVED方法指针,就没办法触发。

这是为什么呢?

急,希望高手能答复。
 
看来大富翁们都是虚有其表,最后还是靠咱自己解决了问题。
 
接受答案了.
 
后退
顶部