动态链接库DLL问题
1、我是用delphi编写DLL和调用DLL的。在DLL里面,定义了一个串口句柄为全局变量hccomm,我调用打开串口函数之后会产生一个句柄hcomm,然后我再调用发送函数时,在writefile(hcomm,pchar(temp)^,length(temp),lrc,nil)函数中用到句柄hcomm,此时的句柄还会是原来产生的句柄吗?
自己编写了,东西发不出去,我怀疑是这两个hcomm不是同一个句柄。
2、如果我打开串口之后返回句柄的值,然后再写串口的时候用这个句柄的值,行不行呢?或者要传递指针?
3、网上说是定义DLL共享数据段,在DLL里面如何定义共享数据段?
不胜感激~
[解决办法]
打开串口函数 是DLL中导出的函数有打开串口的功能,还是宿主程序自己调用非DLL函数。
这块我建议DLL导出一个函数,功能就是打开串口,如果打开成功了就设置下全局的hccomm。
或是发送数据的时候将打开串口函数返回的句柄穿进去
[解决办法]
1 只要你在里面不修改句柄,句柄肯定不会变了,我最近刚好做了一个类似的东西
3 共享内存很简单啊,你可以在网上搜一下。
[解决办法]
不用共享内存直接用就好了,没改过不会变的这个句柄