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

解决方案 »

  1.   

    我们以前做的就是DLL
    难道你没有将它映射到内存吗?
      

  2.   

    谢谢!hsmserver
    内存映射我也试过的!但是也不行,你以前做过类似的?能不能具体说一下?
      

  3.   

    我们用的是SPCOM
    比较简单一点
    不过将DLL映射到内存应该是可以的
      

  4.   

    SPCOM是什么?COM我会一点,但是不太熟悉。
    DLL映射到内存?能不能再稍微说的详细一点,我找资料时好找一点!谢谢了!
      

  5.   

    我们一般是将DLL映射到进程地址空间里的,你说的将DLL映射到内存里是什么意思???
      

  6.   

    一个意思了
    SPCOM是一个操作串口通信的第三方控件
    支持多线程
    非常好用
    你可以到网上下载
      

  7.   

    重写驱动是不大现实的,还是想直接使用厂商提供的DLL,在这个基础上达到这个功能。
      

  8.   

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