- 博客(21)
- 资源 (21)
- 收藏
- 关注
原创 无线模块的二次开发
在物联网大潮中被一个接一个的“物联网方案公司”挖坑,从射频到gprs,从STK到嵌入式,为了一个本来很简单的工业采集功能一直被人掐着七寸!干了近二十年的C++,始终有种情结不愿换工具,再加上这把年纪了,入门一门新语言总感觉有些别扭。也许是前几年种下的因,峰回路转中才见到原来高高在上的跨行业技术其实就是一层窗户纸——合宙Luat带来了全新的期望。我也要搞二次开发了!...
2019-11-21 19:05:27
1038
原创 OPC异步读与同步读的区别
一直用C++操作opc搞工控十多年了,从来都是同步读写,因为时效性并不要求过高,所以秉承“够用就行”的原则。其次也是因为同步读对异常处理比较方便。近来研究异步读写时,发现读取的数值与同步读取数值完全不一样,似乎顺序是乱的。待认真研究代码后才发现,同步和异步的读取还是有本质区别的,不仅仅是异步回调的区别。同步读取函数: virtual HRESULT STDMETHODC...
2019-01-16 10:19:48
3856
1
原创 无法插入空行.行必须至少有一个列值集
ADO写入数据库,一段老代码运行却报错——无法插入空行.行必须至少有一个列值集。搜索了下,有说关键字未赋值、Post()改UpdateBatch()等等。改UpdateBatch()后,确实不报错了,但是查询数据库未发现写入记录。换个结构类似表写入,却正常。无非是数据库字段定义问题了。 AT->TableName = "TemHum"; AT-&g...
2019-01-03 13:27:52
1505
原创 当sprintf遇到string
一直都知道sprintf使用string参数时一定要用.c_str()转换为char*之后才行,否则就会出现“(NULL)”。一次疏忽,在sprintf中发现“(NULL)”,但是此参数是一个char*,无论如何找不到char*成为“(NULL)”的原因。后对sprintf的每次参数详细检查时才发现这个char*前一个参数是string,忘了转成char*,它自己没有变成“(NULL...
2018-12-29 14:48:51
3553
1
原创 BCB控制台输出中文的问题
BCB6控制台输出中文是没有问题的,但是wcout输出宽字符中文(wchar_t)是不正常的,但wprintf输出是正常的。在CB10中可以设置: setlocale(LC_CTYPE, ""); //wprintf wcout.imbue(locale("",LC_CTYPE)); //CB10 可行但在CB6中是不行的,而cout输出中文的是很正常的的...
2018-11-15 19:27:56
567
转载 修改一个操作ini的类
最近一个项目需要用到读写ini配置文件,以往都是用BCB内置的引用 一个通用ini配置文件操作类 发现其新建一个ini和增加、读取都没有问题,但修改就不正常了。调试发现是其缺少了一句修改语句。修改后完整源文件如下://---------------------------------------------------------------------------#ifnde...
2018-11-10 15:20:57
209
原创 关于tcp断线重连的问题
在工控上经常用到tcp连接,比如串口服务器或某些支持modbustcp协议的仪表等,以前尽量使用串口服务器的虚拟串口功能,现在逐步使用上了tcpserver或tcpclient模式。搜索了个C++ 的tcp断线重连的案例(http://www.cnblogs.com/kingdom_0/articles/2571727.html),使用这个的原因还因其使用的是收发多线程。server和clie...
2018-10-18 16:44:47
7139
4
原创 MD5报pointer underrun的故障解决
调试网上MD5的C++经典代码时,打开BCBd的CodeGuard会报错pointer underrun,尤其是验证字符串过长时。打断点出现在 void MD5::update(const unsigned char input[], size_type length) 末尾一句: /* Buffer remaining input */memcpy(&_buffer[inde...
2018-09-07 11:03:41
192
原创 终于过渡到CB10.2了
为了做界面炫彩些,便于商务上更好操作,不得不把使用了17年的bcb6.0升级了。因为近几年的插件几乎没有BCB版的了。经过了一段难受的磨合期,发现CB10.2还是蛮不错的,兼容性也很好。API串口类、tcp、OPC都过渡得挺顺利,注意要字符串就OK了。以后后台程序用BCB,前台用CB。...
2018-07-10 20:23:07
396
原创 用map嵌套vector实现multimap功能
最近迷上了泛型编程,在一个项目中需要用到一个变长映射,于是用map+vector+结构体实现了multimap的基本功能。特改个demo存档。//---------------------------------------------------------------------------#include <map>#include<vector>#includ...
2018-06-13 10:46:29
2090
原创 lightopc在32位win7系统中的无法启动故障(0xc000000d)
给客户做的一套工业物联网OPCserver软件,在多台电脑调试过正常:xp(x86)、win7 x64、win10x64。谁知客户刚收到就在自己的win7(x86)电脑上报“应用程序无法正常启动”:把自己公司的一台x86旧电脑装了win7测试果然如此。告诉了客户测试结果,客户说现场很多工控软件只能运行于x86电脑没法升级硬件。只好从自己身上找问题了。想尽一切办法,内事问百度、外事问谷...
2018-05-10 22:13:41
1426
原创 测试OPCServer内存泄漏虚惊一场
十年前用C++玩会opc client后就一直想玩server,但因工作原因一直没有使用的机会和紧迫感,也因为其难度,就一直搁置着。年后因为新的工作原因,必须搞会opc server。自知年纪大了,从头啃COM技术几乎是不可能,使用网上现成的dll又担心不稳定或是出问题后不知如何查故障。后从老毛子网站得到了lightopc的源码,便花了半个月啃下了这个,虽然已经是15年前的技术,但依然...
2018-05-07 17:04:34
1075
原创 未解决的外部引用
BCB 6.0使用别人的开发包或引用类时经常出现 Unresolved external '*****' referenced from 的错误,往往编译没有问题,打包时才报错,极困扰!这主要是以下3个的问题:其一,引用了其他类,虽然加了头文件,但是没有将cpp文件添加进来。工程——添加到工程。或是 查看——工程管理器,鼠标操作。其二,声明了extern全局变量,定义在lib没有添加进来,#pra...
2018-04-21 19:35:15
2136
原创 C++临界区自动锁
偷懒copy了一个网上现成的自动锁,嵌入项目后调试中屡屡出问题,原类如下:class CLock{public: CLock() { InitializeCriticalSection(&m_cs); } ~CLock() { DeleteCriticalSection(&m_...
2018-04-21 11:54:45
1083
原创 BCB临界区的使用
使用BCB陆续十多年了,因为一直在工控领域主要是做串口和网络通信类的小软件,BCB6.0足够用,对C++应用得并不是很深。 在读写外部设备时也会用多线程(为了避免主程序在操控过程中的卡顿),如串口和数据库,最主要还是操作数据库,开几个线程来分开独立读写数据库还是挺自在的。但因为自己的项目中几乎没有出现同时写一个表的情况,所以都是在主程序中控制多线程的写入数据库时机,多少年...
2018-03-10 21:50:05
631
原创 BCB版的串口枚举2
又无意中看到 MFC实现的串口通信助手 中的一段枚举串口代码,拿过来几乎不改动就可以在bcb6.0里运行了,可是会显示个Com0 出来,断点测试原程序有个小bug,见如下:OSVERSIONINFO osvi;osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);BOOL bGetVer = GetVersionEx(&osvi);if(b...
2018-02-02 11:34:32
427
原创 BCB版的串口枚举
做自控近20年,脱离不了串口通信。原来需要获取电脑的串口时,采用的是读取注册表法,一直以来也使用正常。除非电脑系统问题造成多余的虚拟串口或usb串口号,清理下注册表即可: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control \COM Name Arbiter, 删除数值项ComDB即可。但是随着业务的扩展,面对
2018-01-31 16:53:35
984
原创 想玩libevent竟然出错
最近想玩socket了,看到很多人推荐libevent,于是按教程下载了最近包,安装了vs2015,可是编译时报缺qos.h,最可怕的时还搜不到这个问题如何解决:
2017-09-13 21:47:33
334
原创 从国企暴走私企的一些感触
可能是因为在国企待久了的缘故,对国企的那些顽疾深恶痛绝,丝毫未因时间的流逝而妥协。既是对自己前途的无望也是急需对自己价值的认可,所以享受了国企的诸多实惠之后依然义无反顾地踏上了不归路——暴走私企。 签下了高额的年薪,初入私企,似乎看到了不会再有那么多的“不合时宜”的潜规则约束的工作生活环境了,可是久了依然看到了具备中国特色的企业文化,虽然国企与私企是有很大的不同,
2008-11-16 15:30:00
878
stc15读取MAX31856的热电偶温度
2024-07-29
CxLOG日志类改进支持UNICODE
2023-12-02
RAD studio 12 patch
2023-11-27
bcb6的mqtt案例
2021-08-25
BCB6连接海康威视网络摄像头
2021-08-25
BCB6读取DLT645-97源码
2021-08-24
RADStudioKeyPatch.rar
2020-03-07
Iocomp.Components.v4.02.SP2 for BCB6
2017-10-20
BCB6.0操作SQLite数据库(DLL版)
2017-09-19
BCB线程中调用主界面的回调函数
2017-09-13
BCB6.0临界区多线程
2017-09-01
BCB6.0操作SQLite数据库
2017-08-25
高级串口调试助手
2011-12-14
EasyGrid(dephi和BCB版)
2011-10-24
真正的BCB版可同时操作多个变量的OPC客户程序
2011-07-09
串口军刀编程维护的绝妙工具
2010-09-22
RAD Studio 2010 序列号及DelphiDistillerv1.85
2010-05-09
老代码出现[DBNETLIB][ConnectionWrite (send()).]
2023-09-03
TA创建的收藏夹 TA关注的收藏夹
TA关注的人