C++builder的消息映射稳定吗?为什么我好像收不到消息
我在写一个采集卡的程序,平均1秒钟从采集卡那里发送一个自定义消息过来,然后我接收到消息后进行采集,将数据写入文件。我接收消息用到是c++builder的消息映射,C++builder用的是XE4版本。我单步调试的时候是正常的。可是我一用exe打开,收了一会消息,消息就会突然收不到,导致无法继续采集了,请问这是C++builder消息机制的问题吗?
[解决办法]
消息队列有容量限制的, 队列满了以后, 消息就丢失了.
[解决办法]
这情况,写日志文件好一点,可以知道运行到哪步DOWN掉了。
因为接收数据的随机性,有时程序会进入死循环,或者AV溢出,而你单步调试时,又碰不上那些随机的错误数据。
如果不相信,你可以将你的接收代码改为不处理数据,只给接收到了的信息,直接返回,这样大概就不会死掉了。 这方式,可以确认是哪部分代码出错,我们不要怀疑,要证据。
[解决办法]
我懷疑問題可能出在數據寫入文件的環節...這僅僅是猜測不夠科學真實依據......
每一秒接收消息與每一秒寫一次到文件是兩回事...寫入文件是物理特性...因為有時系統會在處裡 File 過程上有所延宕...換個方式以先累積數據在記憶體到一個量時再一次寫入文件囉......
[解决办法]
单步调试,一步一步走代码,能有几秒,远没有独立EXE运行收到的消息多吧。
你自己给自己发消息,在同一个EXE里试着发,看正常不
[解决办法]
收到消息 直接抛弃返回。、、这样都出错的话,应该是发消息那部分代码有问题。
或者说,你根本就不接收它的消息,逐步缩小问题的范围,直至找到出问题的代码函数及代码段。
[解决办法]
为什么不用查询方式去处理采集卡呢?