自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 资源 (21)
  • 收藏
  • 关注

原创 安装OPC报1603错误的处理

安装OPC软件报1603错误的处理

2024-03-02 15:26:01 183

原创 无线模块的二次开发

在物联网大潮中被一个接一个的“物联网方案公司”挖坑,从射频到gprs,从STK到嵌入式,为了一个本来很简单的工业采集功能一直被人掐着七寸!干了近二十年的C++,始终有种情结不愿换工具,再加上这把年纪了,入门一门新语言总感觉有些别扭。也许是前几年种下的因,峰回路转中才见到原来高高在上的跨行业技术其实就是一层窗户纸——合宙Luat带来了全新的期望。我也要搞二次开发了!...

2019-11-21 19:05:27 933

原创 OPC异步读与同步读的区别

一直用C++操作opc搞工控十多年了,从来都是同步读写,因为时效性并不要求过高,所以秉承“够用就行”的原则。其次也是因为同步读对异常处理比较方便。近来研究异步读写时,发现读取的数值与同步读取数值完全不一样,似乎顺序是乱的。待认真研究代码后才发现,同步和异步的读取还是有本质区别的,不仅仅是异步回调的区别。同步读取函数: virtual HRESULT STDMETHODC...

2019-01-16 10:19:48 3663 1

原创 无法插入空行.行必须至少有一个列值集

ADO写入数据库,一段老代码运行却报错——无法插入空行.行必须至少有一个列值集。搜索了下,有说关键字未赋值、Post()改UpdateBatch()等等。改UpdateBatch()后,确实不报错了,但是查询数据库未发现写入记录。换个结构类似表写入,却正常。无非是数据库字段定义问题了。 AT->TableName = "TemHum"; AT-&g...

2019-01-03 13:27:52 1376

原创 当sprintf遇到string

       一直都知道sprintf使用string参数时一定要用.c_str()转换为char*之后才行,否则就会出现“(NULL)”。一次疏忽,在sprintf中发现“(NULL)”,但是此参数是一个char*,无论如何找不到char*成为“(NULL)”的原因。后对sprintf的每次参数详细检查时才发现这个char*前一个参数是string,忘了转成char*,它自己没有变成“(NULL...

2018-12-29 14:48:51 3403 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 437

转载 修改一个操作ini的类

最近一个项目需要用到读写ini配置文件,以往都是用BCB内置的引用 一个通用ini配置文件操作类 发现其新建一个ini和增加、读取都没有问题,但修改就不正常了。调试发现是其缺少了一句修改语句。修改后完整源文件如下://---------------------------------------------------------------------------#ifnde...

2018-11-10 15:20:57 154

原创 关于tcp断线重连的问题

在工控上经常用到tcp连接,比如串口服务器或某些支持modbustcp协议的仪表等,以前尽量使用串口服务器的虚拟串口功能,现在逐步使用上了tcpserver或tcpclient模式。搜索了个C++ 的tcp断线重连的案例(http://www.cnblogs.com/kingdom_0/articles/2571727.html),使用这个的原因还因其使用的是收发多线程。server和clie...

2018-10-18 16:44:47 6422 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 152

原创 终于过渡到CB10.2了

为了做界面炫彩些,便于商务上更好操作,不得不把使用了17年的bcb6.0升级了。因为近几年的插件几乎没有BCB版的了。经过了一段难受的磨合期,发现CB10.2还是蛮不错的,兼容性也很好。API串口类、tcp、OPC都过渡得挺顺利,注意要字符串就OK了。以后后台程序用BCB,前台用CB。...

2018-07-10 20:23:07 339

原创 用map嵌套vector实现multimap功能

最近迷上了泛型编程,在一个项目中需要用到一个变长映射,于是用map+vector+结构体实现了multimap的基本功能。特改个demo存档。//---------------------------------------------------------------------------#include <map>#include<vector>#includ...

2018-06-13 10:46:29 1955

原创 lightopc在32位win7系统中的无法启动故障(0xc000000d)

给客户做的一套工业物联网OPCserver软件,在多台电脑调试过正常:xp(x86)、win7 x64、win10x64。谁知客户刚收到就在自己的win7(x86)电脑上报“应用程序无法正常启动”:把自己公司的一台x86旧电脑装了win7测试果然如此。告诉了客户测试结果,客户说现场很多工控软件只能运行于x86电脑没法升级硬件。只好从自己身上找问题了。想尽一切办法,内事问百度、外事问谷...

2018-05-10 22:13:41 1305

原创 测试OPCServer内存泄漏虚惊一场

      十年前用C++玩会opc client后就一直想玩server,但因工作原因一直没有使用的机会和紧迫感,也因为其难度,就一直搁置着。年后因为新的工作原因,必须搞会opc server。自知年纪大了,从头啃COM技术几乎是不可能,使用网上现成的dll又担心不稳定或是出问题后不知如何查故障。后从老毛子网站得到了lightopc的源码,便花了半个月啃下了这个,虽然已经是15年前的技术,但依然...

2018-05-07 17:04:34 973

原创 未解决的外部引用

BCB 6.0使用别人的开发包或引用类时经常出现 Unresolved external '*****' referenced from 的错误,往往编译没有问题,打包时才报错,极困扰!这主要是以下3个的问题:其一,引用了其他类,虽然加了头文件,但是没有将cpp文件添加进来。工程——添加到工程。或是 查看——工程管理器,鼠标操作。其二,声明了extern全局变量,定义在lib没有添加进来,#pra...

2018-04-21 19:35:15 1896

原创 C++临界区自动锁

偷懒copy了一个网上现成的自动锁,嵌入项目后调试中屡屡出问题,原类如下:class CLock{public: CLock() { InitializeCriticalSection(&m_cs); } ~CLock() { DeleteCriticalSection(&m_...

2018-04-21 11:54:45 950

原创 BCB临界区的使用

       使用BCB陆续十多年了,因为一直在工控领域主要是做串口和网络通信类的小软件,BCB6.0足够用,对C++应用得并不是很深。       在读写外部设备时也会用多线程(为了避免主程序在操控过程中的卡顿),如串口和数据库,最主要还是操作数据库,开几个线程来分开独立读写数据库还是挺自在的。但因为自己的项目中几乎没有出现同时写一个表的情况,所以都是在主程序中控制多线程的写入数据库时机,多少年...

2018-03-10 21:50:05 574

原创 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 387

原创 BCB版的串口枚举

做自控近20年,脱离不了串口通信。原来需要获取电脑的串口时,采用的是读取注册表法,一直以来也使用正常。除非电脑系统问题造成多余的虚拟串口或usb串口号,清理下注册表即可: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control \COM Name Arbiter, 删除数值项ComDB即可。但是随着业务的扩展,面对

2018-01-31 16:53:35 908

原创 想玩libevent竟然出错

最近想玩socket了,看到很多人推荐libevent,于是按教程下载了最近包,安装了vs2015,可是编译时报缺qos.h,最可怕的时还搜不到这个问题如何解决:

2017-09-13 21:47:33 285

原创 从国企暴走私企的一些感触

        可能是因为在国企待久了的缘故,对国企的那些顽疾深恶痛绝,丝毫未因时间的流逝而妥协。既是对自己前途的无望也是急需对自己价值的认可,所以享受了国企的诸多实惠之后依然义无反顾地踏上了不归路——暴走私企。        签下了高额的年薪,初入私企,似乎看到了不会再有那么多的“不合时宜”的潜规则约束的工作生活环境了,可是久了依然看到了具备中国特色的企业文化,虽然国企与私企是有很大的不同,

2008-11-16 15:30:00 819 1

CxLOG日志类改进支持UNICODE

2008年llbird发布的C++日志类,相当好用!虽然号称支持宽字符,但是在RAD STUDIO下并不能正常运行。现修改测试能正常在RAD STUDIO12 下正常运行。带测试案例源码。

2023-12-02

RAD studio 12 patch

与RAD studio 10/11的patch方式一样,安装到选择授权方式时回退,运行RADStudio-12-29-0-50491-5718-KeyPatch,以上点击右上两个按钮即可,弹出窗口直接ok,界面有英文详细介绍步骤,文字可复制到在线翻译。实测正常!

2023-11-27

bcb6的mqtt案例

使用paho-mqtt3a与BCB6.0实现mqtt协议传输,功能很强大,但只简单使用了创建client、连接、发布。控制台程序,是自己项目中测试过的的真实案例。

2021-08-25

BCB6连接海康威视网络摄像头

使用海康威视网站下载动态链接库,连接海康威视摄像头实现在线监控。 输入IP、端口(一般默认8000),用户名、密码,点击登录后即可在线实时监控海康网络摄像头。 BCB6.0编译。

2021-08-25

BCB6读取DLT645-97源码

实测BCB6.0读取长沙威盛DTS(X)343电表成功。读取常用的11个参数: DT_ZXYGZ, // 正向有功总电能 9010 DT_ZXWGZ, // 正向无功总电能 9110 DT_ZXYG, // 正向有功功率 B630 DT_ZXWG, // 正向有功功率 B640 DT_ZGLYS, // 总功率因数 B650 DT_AXDY, // A相电压 B611 DT_BXDY, // B相电压 B612 DT_CXDY, // C相电压 B613 DT_AXDL, // A相电流 B621 DT_BXDL, // B相电流 B622 DT_CXDL, // C相电流 B623

2021-08-24

RADStudioKeyPatch.rar

RadStudio10.3.3 KeyPatch。实测正常使用。请注意版本号,其他RadStudio10.3资源都是10.3.1或10.3.2的,不能用于RadStudio10.3.3。

2020-03-07

BCB6.0四种方法枚举电脑串口

BCB6.0用四种方法枚举电脑串口,第四种有个小bug,暂时没时间详查

2018-02-02

BCB版串口枚举

一个老外的串口枚举程序,bcb6.0版,测试正常,可以设置FIFO,win7及以上程序需以管理员身份启动。

2018-01-31

Iocomp.Components.v4.02.SP2 for BCB6

因用pc软件做工控上位机,为了与组态软件通用,不得不找些实用的曲线、数码管、仪表盘之类的组件 BCB6.0安装正常使用,将原本16M的包精简提取出BCB5/6 只需的文件,并写了安装步骤说明,附带了4个组件使用范例,够用了!

2017-10-20

BCB6.0操作SQLite数据库(DLL版)

补充上次发的C版,因为C版造成打包文件体积暴增,就生产lib玩了把dll版。 #include "sqlite3.h" // 主要这行和下行代码是操作sqlite数据库的关键语句 #pragma comment(lib,"sqlite3.lib") ………………

2017-09-19

BCB线程中调用主界面的回调函数

网上的回调函数都是API例子,学习函数指针倒是不错,可是很难让初学者立即应用。常见的情况是辅线程完成某事件后需要“通知”主界面,比如常见的进度条——线程中完成一定的进度后即通知主界面显示到一定的刻度。本程序解决了bcb中回调函数的实用问题,可以当模板套用。代码有一定的注释,简单易懂,至少对于学BCB的人来说,是网上找不到的例子! Form1->ProgressBar1->Position=0; pMyCallback=new callthread(false); //开启线程 pMyCallback->RegisterDataCallBackFun(Progress); //注册回调函数接口 ......

2017-09-13

BCB6.0临界区多线程

本多线程是使用的临界区:CRITICAL_SECTION 按下按钮,通知线程要写入一串字符(线程执行完需要2s以上),延时20ms后通知线程再写入一串字符,跟第一次写入造成“冲突”,延时20ms后,在两个写都没完成时再通知线程要读同一个记事本。 因此造成线程中三个事件“打架”。 可通过临界区成功解决了线程执行的冲突问题,最终3个事件都会完美执行。可以很轻易地移植成对数据库的操作,若使用ADO需要在线程中对COM对象初始化(CoInitialize)。

2017-09-01

BCB6.0操作SQLite数据库

BCB6.0 使用 sqlite 数据库简单方法, 工程--添加到工程---选择 .c类型 添加 sqlite3.c再引入头文件 #include "sqlite3.h"。例程可以帮助新学SQLite入门。

2017-08-25

高级串口调试助手

解决了传统串口调试助手的以下问题: 1. 占用系统资源过大 2. 不支持中文发送和显示 3. 大数据量通讯时界面闪烁 4. 不能判断系统实际串口数量 5. 使用第三方串口控件效率低下 多线程、绿色、无广告。适合单片机和串口通讯编程调试使用。

2011-12-14

EasyGrid(dephi和BCB版)

EasyGrid-V6是一个非常好的控件,再次感谢Huang Qian,但由于其使用的preview类和previewbox类同ehlib中的类名称重复,所以不能同时使用,为此,本人把preview\previewbox修改为easypreview\easypreviewbox dfw@43753 ========================================= 第三作者将EasyGrid增加了BCB版本,在BCB6.0下测试成功,感谢ccrun的dpk2bpk工具!

2011-10-24

AdvStringGrid早期的控件

老版本的,体积小,比较稳定。 BCB4/5/6 ;delphi 4/5/6/7

2011-07-10

VC++的OPC类hotopcserver

只有hotopcserver.cpp和hotopcserver.h两个文件 VC测试过,花代价从一个网站上下的。

2011-07-09

真正的BCB版可同时操作多个变量的OPC客户程序

真正的可同时读取多个变量的BCB版OPC开源程序,不调用第三方开发dll。 除了可以学习OPC技术外,还可额外学习listview、防止程序启动两次、限制文本框只能输入数字、读取注册表、使用回调函数等 为了防止有人怀疑我的程序不能编译或运行,连同exe文件一起打包。 很适合入门级学习!

2011-07-09

串口军刀编程维护的绝妙工具

C++编制,多线程,API。 可同时操作或监控多达四个串口,丝毫不占系统资源。很适合单片机或常与串口打交道的朋友。 经过初步调试,发现bug请致信[email protected]

2010-09-22

RAD Studio 2010 序列号及DelphiDistillerv1.85

RAD Studio 2010 序列号及DelphiDistillerv1.85 安装序列号:HAAL-DANSGN-FZR5AG-M3BS DelphiDistillerv1.85见下载

2010-05-09

VB.NET的OPC源程序

找来的VB.NET编的OPC源程序,比较合潮流,难得!

2008-11-30

功能较全的OPC客户端

拣来的一个opc客户端,调试OPC很好用的,无授权等限制,可连接远程OPC服务器。

2008-11-17

收集来的OPC的C++源码

把这个搞懂了,用C++玩自动化基本也就是高手了,VC++的。

2008-11-16

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除