请教,编程思路。

zjxsw 2013-02-02 10:46:47
要写一个dll,不知道怎么实现。


比如宿主程序调用文件读写API函数时,
hangle1=openfile(文件1),read(hangdle1),close(hangdle1)
hangle2=openfile(文件2),read(hangdle2),close(hangdle2)


dll程序里要怎么写,才能管理这些句柄?也就是说同一个函数被分别调用而彼此不被干扰?


...全文
1061 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjxsw 2013-02-05
  • 打赏
  • 举报
回复
文件句柄是打个比方。 最后使用全局Tlist来保存信息,多次调用时找出相应的Tlist[index]来处理
sololie 2013-02-04
  • 打赏
  • 举报
回复
随便没太看懂需求,不过你管理文件句柄干什么?
hsfzxjy 2013-02-04
  • 打赏
  • 举报
回复
引用 4 楼 zjxsw 的回复:
不知道怎么写啊。不知道函数怎么定义,变量怎么定义? 比如有个函数: F(x)=计数器 我怎么样定义这个函数?使得不同的调用互不干扰?
function OpenFile(Name:string):HWND; function Read(Handle:HWND):string; procedure Close(Handle:HWND); 是这样么。。
zjxsw 2013-02-04
  • 打赏
  • 举报
回复
读取的函数: show(Handle:HWND):long begin if Handle=1 then Result:=A1; if Handle=2 then Result:=A2; end
zjxsw 2013-02-04
  • 打赏
  • 举报
回复
引用 7 楼 HSFZXJY 的回复:
HWND由使用者保持不行么。。
比方说: 我定义两个全局变量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......啊。 难道要用多线程吗?
hsfzxjy 2013-02-04
  • 打赏
  • 举报
回复
HWND由使用者保持不行么。。
zjxsw 2013-02-04
  • 打赏
  • 举报
回复
引用 5 楼 HSFZXJY 的回复:
引用 4 楼 zjxsw 的回复: 不知道怎么写啊。不知道函数怎么定义,变量怎么定义? 比如有个函数: F(x)=计数器 我怎么样定义这个函数?使得不同的调用互不干扰? function OpenFile(Name:string):HWND; function Read(Handle:HWND):string; procedure Close(Handle:HWND); ……
OpenFile函数里怎么保持这个HWND?当read函数被调用时,使用到OpenFile函数分配的HWND?
zjxsw 2013-02-03
  • 打赏
  • 举报
回复
不知道怎么写啊。不知道函数怎么定义,变量怎么定义? 比如有个函数: F(x)=计数器 我怎么样定义这个函数?使得不同的调用互不干扰?
一路随云 2013-02-03
  • 打赏
  • 举报
回复
句柄啊,句柄是唯一的。操作这个句柄就好了 你每次打开赋值给不同的句柄!
zjxsw 2013-02-03
  • 打赏
  • 举报
回复
我的意思是象Open,Close,Read这些函数是怎么写的?在多次调用时不被干扰。
hsfzxjy 2013-02-02
  • 打赏
  • 举报
回复
按照你这个思路本来就不会干扰。因为你的函数Open,Close,Read的参数中有Handle,即句柄是由宿主程序传递的。除非你的思路是Handle被封装在DLL中,对外不可见。

828

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧