文章插图
看崩溃点没什么头绪,表现还不如 console 呢 , 这下把我整不会了,最终这个方案宣告失败 。不过留着还是有意义的,万一有人基于它实现了光标输出呢…
结语本文尝试解决扫码器在遇到中文时不输出字符的问题,总体上解决了这个问题,优雅的解决方案因技术问题没有实现,不优雅的解决方案针对检测场的需求来说也够用了 。
最早想的技术方案其实是不想动 demo 程序的,当时想通过在外面包一层 shell 脚本来解决 , 熟悉的读者知道我喜欢用这种方式解决一些问题,当时主要有两个原因导致想这样干:
- 家里的 windows 笔记本没装 VS,安装 VS2015 一来比较慢,二来拖累机器运行速度,不想装
- demo 程序已经比较完整,只缺一个编码转换的工作,而用脚本调用 iconv 一行就能搞定,何必费力写 c++ 呢?
- demo 的输出在经过 msys2 处理后 , 无法正确断行,导致无法从输出信息中提取扫码器读取的数据,对于这个问题
- 开始怀疑是管道重定向后 stdout 不再是行缓冲的 , 而在 shell 层面无法改变一个程序的 stdout 缓冲类型
- 后来修改 demo 源码,增加 setvbuf 调用 (参考《[apue] 标准 I/O 库那些事儿》中缓冲一节),重新编译但不起作用
- 最终定性是 msys2 与 demo 之间的兼容性问题,不好搞,放弃
- 想要将数据复制到系统剪贴板 , 可以直接在 msys2 中使用 windows 的 clip 命令接收要放置的数据 (echo "${data}" | clip),但是如果想将数据输出到光标 , 对不起办不到 。这个必需用 c++ 进行系统开发 (后来也没走通,不过这是后话)
上面说了一些解决过程中的探索,下面谈谈这个扫码器的问题 , 如果它能将编码转换功能集成在硬件里,通过配置来决定如何进行编码转换,那么这个场景就不需要二次开发 sdk 了!只要运行下 VguangConfig 并做一些勾选工作就可以了 , 如果再将常用的几种编码转换做成二维码配置放在文档中,直接扫对应的码就搞定了!后续给厂家反馈时 , 厂家表示可以考虑,其实就是增加一个 iconv.dll 的事儿,不难!
最后说一下系统升级导致扫码器不能用的问题,这就是典型的没做系统集成测试案例?。⌒孪低趁挥屑嫒堇舷低车囊恍┮怨嬖?,导致下游出问题,其实完全可以让升级系统的软件厂商改进一下它这个二维码的生成方式,是用 utf8 还是 gb2312,搞成可配置的,操作人员通过配置来保持以前的编码方式不变,这个问题也能得到解决 。
下载扫码器 sdk 官网就可以下载,两个应用的源码及可执行文件链接如下:
Demohidprotocol console 版
Demohidprotocol win32 版
console 版可以直接用,win32 版还是个半成品,感兴趣的读者可以尝试探索一下 。
console 版的可执行文件为 debug 版本,release 版本不知为何编译报错:
1>------ Build started: Project: Demohidprotocal, Configuration: Release Win32 ------1>main.obj : error LNK2001: unresolved external symbol __imp__SetClipboardData@81>main.obj : error LNK2001: unresolved external symbol __imp__EmptyClipboard@01>main.obj : error LNK2001: unresolved external symbol __imp__CloseClipboard@01>main.obj : error LNK2001: unresolved external symbol __imp__OpenClipboard@41>D:\BaiduNetdiskDownload\USB接口C&CPP语言SDK20220411\Demohidprotocal\Release\Demohidprotocal.exe : fatal error LNK1120: 4 unresolved externals========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========看起来和操作系统剪贴板相关 , 因时间关系没有进一步去研究 。
推荐阅读
- 通过openlayers加载dwg格式的CAD图并与互联网地图叠加
- vivo互联网机器学习平台的建设与实践
- Go的网络编程详解
- MES与工业互联网的关联边界在哪里?
- 工业互联网领域的企业,都已经接入了ERP或者MES系统了吗?
- 如何查看腾讯课堂听课记录
- 海南经济特区万物互联通信工程有限公司_工商信用信息_经营范围期限状态_法人_地址_注册资本_怎么样
- 互联网创业平台有哪些 互联网金融创业有哪些方向
- 互联网时代如何找到心仪的工作
- 互联网时代,怎样健康地使用互联网?