GetInBufferCount GetOneDimSize解决方法
GetInBufferCount GetOneDimSize
第一个是缓冲区的数据,第二个是得到的有效数据,这个有效数据是什么意思,现在我接受数据,用GetInBufferCount返回7000多个,用GetOneDimSize只返回24个,为什么会差这么多……
------解决方案--------------------
GetInBufferCount() 这个是MSCOMM的函数,返回缓冲区等待读取的数据个数
GetOneDimSize()
COleSafeArray::GetOneDimSize
This method retrieves the number of elements in a one-dimensional COleSafeArray object.
查下MSDN
------解决方案--------------------
简单点可以这么理解
缓冲区是固定大小的
里面肯定是有数据的
只是有有效的有无效的
而无论是发送和接收都有可能只用到缓冲区的一部分
用到的部分自然是有效数据的部分
------解决方案--------------------
比如缓冲区是1024
而读到接受到的数据只有10
那就只有这10数据有效
大概就是这个意思
------解决方案--------------------
COlesafeArray 是一个可以存储任意类型数据和维数的数组,按照我的理解哦,
long float 类型的数据本来是占4个字节的,因为放到安全数组里面,只算个元素了,按照这种算法,1024缩减到24 难度应该不是很大
但是GetInBufferCount获取的是不是二进制数还望高人验证
第一个是缓冲区的数据,第二个是得到的有效数据,这个有效数据是什么意思,现在我接受数据,用GetInBufferCount返回7000多个,用GetOneDimSize只返回24个,为什么会差这么多……
------解决方案--------------------
GetInBufferCount() 这个是MSCOMM的函数,返回缓冲区等待读取的数据个数
GetOneDimSize()
COleSafeArray::GetOneDimSize
This method retrieves the number of elements in a one-dimensional COleSafeArray object.
查下MSDN
------解决方案--------------------
简单点可以这么理解
缓冲区是固定大小的
里面肯定是有数据的
只是有有效的有无效的
而无论是发送和接收都有可能只用到缓冲区的一部分
用到的部分自然是有效数据的部分
------解决方案--------------------
比如缓冲区是1024
而读到接受到的数据只有10
那就只有这10数据有效
大概就是这个意思
------解决方案--------------------
COlesafeArray 是一个可以存储任意类型数据和维数的数组,按照我的理解哦,
long float 类型的数据本来是占4个字节的,因为放到安全数组里面,只算个元素了,按照这种算法,1024缩减到24 难度应该不是很大
但是GetInBufferCount获取的是不是二进制数还望高人验证