正常情况下是不会改变nIndex的,我想唯一可能的情况是lpszBuffer定义在nIndex之前,并且lpszBuffer缓冲区长度太小,造成溢出后改变了nIndex的值。是这样吗?
解决方案 »
- 求助:win32当中如何用代码调用ocx控件
- 单文档嵌入到一个对话框里后,如何在对话框上添加Button按钮
- 为什么运行到这里while(!IsEndOfFile()) m_pRecordset的值就变成了0
- 资源文件该如何加, 急
- 如何用位图表达曲面片(如椭球面)
- 请问在CSocket中send()和Receive()的问题
- 包含了头文件winsock.h后编译cpp文件出错,说找不到WSAStartup和WSACleanup,怎么办??
- 大家帮忙看看这个错误是怎么回事?
- 请问:我采集了2M的数据想让它们显示为波形,我这些数据放在哪,能放在数组里吗?
- 新手求助图像显示的问题
- 哪位老兄告诉我:看MFC源码有没有用?(内空)
- 使用socket通讯时,服务器端使用多线程,在线程中使用自定义
我的源代码是这样的:
CSnset snset;//CSnset是一个记录集
snset.Open ();
int i=m_editctl.GetLineCount ();
for(int nIndex=0;nIndex<i;nIndex++)
{
char snstr[]="";
snset.AddNew ();
snset.SetFieldNull (&(snset.m_sn ), FALSE);
snset.SetFieldNull (&(snset.m_ono ),FALSE);
snset.m_ono =m_ono-1;
m_editctl.GetLine (nIndex,snstr);
snset.m_sn =snstr;
snset.Update ();
}
这样好象只分配了5个字符给snstr.一开始的时候我用memset(snstr,20,'\0'),snstr就得不到值,但是我在C程序里这么用是可以的。