在DLL里面,我自己创建一个TClientSocket,但是不知道怎么把OnRead事件和自己指定的函数联系起来,请问怎么办??

解决方案 »

  1.   

    在Dll中定义一个函数指针,如:
       NewOnRead
    在OnRead事件中调用NewOnRead,其它程序调用dll时先要填写好NewOnRead,
    使其指向程序中的事件处理程序。
          dll.NewOnRead=YouApplication.NewOnRead;例如:
    Socket.OnRead
             |
             V
         NewOnRead  ->  YouApplication.NewOnRead;
      

  2.   

    定义
    procedure cliRead(Sender: TObject; Socket: TCustomWinSocket);
    然后
    socket.onread:=cliRead;
    dickeybird888(于伟刚) :你的方法好象不对,在dll中定义一个函数指针NewOnRead,它对于其他进程来说是私有的,怎能dll.NewOnRead=YouApplication.NewOnRead;呢?
      

  3.   

    不太懂回调函数。
    但是我认为dll里不能调用其它单元的过程,你可以把自己指定的函数NewOnRead放到dll里,把它们整个封起来。