DLL中多设备方法
DLL中多设备方法求助我要设计一个动态库,动态库的功能是打印设备控制函数的封装,对设备的控制都是通过句柄
DLL中多设备方法求助
我要设计一个动态库,动态库的功能是打印设备控制函数的封装,对设备的控制都是通过句柄进行的,以前的版本仅仅支持一台设备,所以只需要在动态库内部记录并使用这个句柄就可以,现在要求对这个库进行升级,要求支持多个设备,求助有没有一个比较好的方法实现多台?
之前考虑用链表或数组存储这些句柄,在动态库的每个接口函数调用的时候都输入这个句柄作为参数。
例如当前的一个函数例子,设置打印模式的函数,声明是这样的:
C/C++ codeSetMode(HANDLE hPort, int nPortType, int nPrintMode)
设备是通过不同的端口进行通讯的,每个函数都带有hPort和nPortType两个参数来区分多台和不同的端口类型。但考虑这种方法使用起来不是很方便,所以放弃了。需要一个易用且稳定的方式来实现这种功能,分数不多,还望各位给予指导。谢谢。
[解决办法]考虑兼容以前的库么?
[解决办法]动态库不是同一进程里数据唯一吗
[解决办法]非要用hport么?
你dll内部定义一个结构体,包含Port和PortType,
这个结构体的new对象地址强转为handle传回,用时再把这个handle给dll,再强转回去用不就得了