日期:2014-05-18  浏览次数:20991 次

关于数组超出索引界限问题
现在我使用DLL的回调函数来开发软件。
回调函数格式如下:
void __stdcall OnReceFromCOM(int ConnectID, int COMNum, byte[] pDataBuf, int DataLength )
其中pDataBuf为被调用时传回的数据,dataLength为长度。
现在我运行程序,传回的dataLength为7.应该说明pDataBuf为7字节。
但是当我用pDataBuf[i]来显示参数时,只能显示pDataBuf[0],当i为其他值时提示标题的错误,请问这是怎么回事?



------解决方案--------------------

不要迷信你的长度。。。

要以pDataBuf真实长度为准。。。

所以自己看一下pDataBuf的真实长度是多少
------解决方案--------------------
因为int是值类型的,你这样写只能传入而无法传出,所以得不到实际的DataLength。
如果可以修改函数参数格式为ref int DataLength,你才能得到实际可能的长度。
------解决方案--------------------
http://www.cnblogs.com/Eashion/archive/2008/12/18/1357681.html
------解决方案--------------------
断点,调试,看看到底pDataBuf里面装的什么东西。这种问题自己找啊。