要写一个dll,不知道怎么实现。
比如宿主程序调用文件读写API函数时,
hangle1=openfile(文件1),read(hangdle1),close(hangdle1)
hangle2=openfile(文件2),read(hangdle2),close(hangdle2)
dll程序里要怎么写,才能管理这些句柄?也就是说同一个函数被分别调用而彼此不被干扰?
编程

解决方案 »

  1.   

    按照你这个思路本来就不会干扰。因为你的函数Open,Close,Read的参数中有Handle,即句柄是由宿主程序传递的。除非你的思路是Handle被封装在DLL中,对外不可见。
      

  2.   

    我的意思是象Open,Close,Read这些函数是怎么写的?在多次调用时不被干扰。
      

  3.   

    function OpenFile(Name:string):HWND;
    function Read(Handle:HWND):string;
    procedure Close(Handle:HWND);是这样么。。
      

  4.   


    OpenFile函数里怎么保持这个HWND?当read函数被调用时,使用到OpenFile函数分配的HWND?
      

  5.   


    比方说:
    我定义两个全局变量A1,A2
    函数为:
    F(Handle:HWND;X:long):long;
    begin
      if Handle=1 then A1:=A1+x;
      if Handle=2 then A2:=A2+x;
    end
    当然函数的功能不是怎么简单,我就是要达到这样的效果。问题是我不可能事先定义好很多个A1、A2、A3......啊。
    难道要用多线程吗?
      

  6.   

    读取的函数:
    show(Handle:HWND):long
    begin
      if Handle=1 then Result:=A1;
      if Handle=2 then Result:=A2;end
      

  7.   

    文件句柄是打个比方。
    最后使用全局Tlist来保存信息,多次调用时找出相应的Tlist[index]来处理