双开 CorelDRAW 与工具互斥
同时开两个 CorelDRAW 是可以的,只有一条规矩:插件到机器只有一条通道,同一时间只能有一个实例在下发。
开两个会发生什么
每个 CorelDRAW 进程各加载一份插件。两个窗口都能正常提取轮廓、加标记、排版。但通往设备的通道是独占的——先接上的那个占住,后一个接不上。
表现
- 第二个窗口弹“无法加载 DtzCdrToolCore.dll”,而文件明明在。
- 第二个窗口显示发送成功,机器一动不动。
- 第二个窗口设备列表是空的,第一个窗口里正常。
两个文档怎么配合
- 提取、排版在两个窗口分别做——这部分互不影响,安全。
- 下发只从一个窗口发。要用另一份文档,先把这一单发完,关掉第一个窗口,再在第二个里干活。
- 需要来回切换就关掉闲置的那个,别两个都开着。窗口一关,通道立刻释放。
通道跟着窗口走等机器走完并不等于通道释放——它是在窗口关闭时释放的,不是作业结束时。
为什么这么设计
两个发送方同时往一个机器缓冲里写,路径会交织在一起,事后没法区分哪条属于哪一单。独占是更便宜的保证:开始的那一单,就是会走完的那一单。
快速自检
怀疑通道被卡住:关掉所有 CorelDRAW 窗口,到任务管理器确认没有残留的 CorelDRW.exe,然后只开一个。下发恢复正常,说明原因就是第二个实例。