各位老大,我的多个设备要加载同一个dll文件,我想问一下我的这个文件是被加载一次,然后不同的设备用不同的函数还是5个设备就加载5次这个dll文件,还有,如果加载一次的话,我在文件中定义的静态全局变量是不是可以被多个设备使用
回复(17) 2004-09-16 08:23 来自版块 - Wince 程序开发
表情
wxl_50685330在驱动初始化的时候,开辟一块缓冲区,并分配给每个设备一块(你可以把设备收到的数据放这里面,上层就直接对这些缓冲区操作),上层在对设备进行操作时,通过给出不同的ioctl来告诉下面操作的是哪个设备(也就是操作哪个缓冲区),驱动中就根据事先定义好的ioctl来动作,当然,你也可以定义...(2004-09-17 19:48)
degyhy123老大可以说的清楚一些吗,我还不是很明白??(2004-09-17 16:35)
wxl_50685330由于你的设备不是被不同的进程启动的,这些数据只有一个,不会出问题。但是你可以把这些设备使用的数据区分开阿。 你写一个总的驱动,对上呈现出一个设备,并把桥挂接的各个设备使用的数据区分离开,上层使用这个设备的时候给出标示,驱动内部区分是操作哪个设备,就类似于一个pci设备的多个...(2004-09-17 12:59)
degyhy123是这样的,我的设备是一个pci桥片带多个can和串口的控制器,所以只有这样写了(2004-09-17 10:01)
leo_cyl除非有特别需要,一般来说,一个架构设计良好的驱动程序很少在多个dll中共享数据段。可以用其他比较安全的方法实现,如进程/线程间通讯。(2004-09-17 09:44)
wwei_wang严重关注中 :P(2004-09-17 09:21)
degyhy123各位老大,我的dll是由一个device。exe加载的话,是不是不用加share的那个东西呢(2004-09-17 07:50)
wxl_50685330#pragma data_seg("seg_name") variables Lists #pragma data_seg() (2004-09-16 15:05)
wxl_50685330*.def里面写 SECTIONS Seg_name READ WRITE SHARED *.c里面写 #pragma data_seg("seg_name") 对不起大家,我认罪:))) (2004-09-16 15:03)
leo_cyl好久没用过了。如果有说错的地方别见怪。 在source code 里,用 #pragma data_seg("seg_name") int i; 。。。 指定一个数据段。 然后在dll的def文件中指定该数据段为shared 具体参考help...(2004-09-16 14:11)

返回顶部