动态链接库DLL问题

chen_shu_jie 2011-08-16 11:31:52
1、我是用delphi编写DLL和调用DLL的。在DLL里面,定义了一个串口句柄为全局变量hccomm,我调用打开串口函数之后会产生一个句柄hcomm,然后我再调用发送函数时,在writefile(hcomm,pchar(temp)^,length(temp),lrc,nil)函数中用到句柄hcomm,此时的句柄还会是原来产生的句柄吗?
自己编写了,东西发不出去,我怀疑是这两个hcomm不是同一个句柄。

2、如果我打开串口之后返回句柄的值,然后再写串口的时候用这个句柄的值,行不行呢?或者要传递指针?

3、网上说是定义DLL共享数据段,在DLL里面如何定义共享数据段?

不胜感激~
...全文
101 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
chen_shu_jie 2011-08-17
  • 打赏
  • 举报
回复
你们说的都对哦,我试过了,可以用了。原来是我换了一个短信机,它用之前非得复位一下,晕死~不过还是解决疑问了,非常感谢!!
rainychan2009 2011-08-16
  • 打赏
  • 举报
回复
1 只要你在里面不修改句柄,句柄肯定不会变了,我最近刚好做了一个类似的东西
3 共享内存很简单啊,你可以在网上搜一下。
浩南_哥 2011-08-16
  • 打赏
  • 举报
回复
打开串口函数 是DLL中导出的函数有打开串口的功能,还是宿主程序自己调用非DLL函数。
这块我建议DLL导出一个函数,功能就是打开串口,如果打开成功了就设置下全局的hccomm。
或是发送数据的时候将打开串口函数返回的句柄穿进去
李_军 2011-08-16
  • 打赏
  • 举报
回复
不用共享内存直接用就好了,没改过不会变的这个句柄

1,593

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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