应用背景:由于Mifare读卡器是用串口通讯的,驱动DLL在进程A加载,并初始化后,再在进程B加载并初始化会失败。我的目的就是能让多个进程同时使用硬件设备,当然,不可能是真的同时,只是说多个进程都能操纵硬件设备。我是这样做的:我在厂商提供的驱动DLL上再封装了一层,把所有对硬件的操作都封装到一个类里。我一开始是这样想的,做个DLL,然后共享这个类的实例, 现在想象,当时的想法比较幼稚。经过测试,我的方法是不行的,DLL不能共享复杂的数据类型。问题:我想请教大家,有什么方法可以做到我上述的功能,关键是比较简单的,而且是确实可行的,麻烦大家了!!!只要大家给个意见就可以,我会去试的!!!

解决方案 »

  1.   

    对!问题是在多个进程里我不能对硬件进行操作,只能第一个装载DLL的进程是够正常使用,之后在装载DLL的进程就无法使用了!
    我就是想请问还有什么方法可以放多个进程都可使用硬件,同步不同步可以以后再考虑。
      

  2.   

    以前,我是将对硬件的操作就独立做了个exe,别的进程要用的话,就发copydata消息过去就可以了。但是现在上头说不能做成一个独立的exe一定要是DLL,我没办法,希望大家帮帮我,就这个问题,我也问过很多人,到现在还没有一个满意的答案。
      

  3.   

    办法很多啊.1.在dll中创建一个窗口,读取串口都sendmessage消息到这个窗口,测试结果再send出来.2.在dll中监听一个端口(socket),其他程序connect,再发送相应的数据协议.测试结果send来相应的连接的客户端。etc ...注意只在dll中访问串口。