串口上位机(接收同步显示FFT波形) 问题Mark!
- 消除: - warning C4996:’sprintf’: This function or variable may be unsafe. Consider的方法:
 http://blog.csdn.net/lllxy/article/details/6859289
 最简单的可以用的方法:
 选项Project -> Configuration Properties -> C/C++ ->Preprocessor -> Preprocessor Definitions
 添加- _CRT_SECURE_NO_DEPRECATE和- _SCL_SECURE_NO_DEPRECATE
 或用- sprintf_s(char *buffer,size_t sizeOfBuffer,const char *format [argument]...);替换
- vc2008错误:不能将参数 1 从“const char []”转换为“LPCTSTR” 
 http://90chuanlin.blog.163.com/blog/static/4042992920114233169866/
 是因为vs 2008之后项目使用的是unicode字符集,在“项目-属性”中将”unicode字符集”换成”多字节字符集”就行了,也可以将文本内容放在_T()里面,不变字符集。
- unicode编码与多字节编码 
- oncreat不行要注册MSChart控件 
- MsChart实现无闪烁动态曲线(MFC) 
 http://www.cnblogs.com/wy-wangyan/archive/2011/05/13/2045851.html
- VS2010 VC Project的default Include设置 
 http://blog.csdn.net/jeffchen/article/details/5491435
- ADC采样,DAC输出sin 
- CString函数大全,去掉最后一个字符 
- CString转float 要考虑字符编码问题 _tstof 
- vc中如何对float型数保留两位小数? 
 http://liangjun1800.blog.163.com/blog/static/349705912009013843523/- loat fMoney = 1.12345; fMoney = ((long)(fMoney*100)/100.0);- 或者 - float fMoney = 1.12345; CString strMoney; strMoney.Format("%.2f",fMoney); fMoney = atof(strMoney);
- 绘图闪烁问题:双缓存法 
- m_Picture在初始化之后不能使用 - m_Picture.BringWindowToTop(); m_Picture.ShowWindow(SW_NORMAL);进异常中断,由以前的类的成员变量改成全局的- static CStatic m_Picture;就行了。
- 靠自己是最靠谱的,写程序有感(参考别人的程序,特别是很古老的程序) 
- xx.MoveWindow 时候 ASSERT(::IsWindow(m_hWnd))? 
 动态加载一个窗体窗体里面有一些控件。在重载窗体的onsize函数后对控件的大小进行修改。
 http://blog.csdn.net/vip_wanrui/article/details/6550607
 解决办法是- if (xxxx.GetSafeHwnd()!=NULL)//必须先判断hwnd是否已经生成。。。。
- 添加状态栏 - static UINT BASED_CODE indicators[]=
 //状态栏的指示器列表,如有未定义的字符串名,需在Resource View的String Table中添加定义
- 添加状态栏导致退出时进入异常中断。 
 改成全局的- static f=(0:length(y)-1)’*fs/length(y);%进行对应的频率转换点数,及采样率
- 自定义控件(12,16)Picture控件和状态栏 
- ONSize 时要考虑最小化与最大化或尺寸拉伸,分开处理 
- 用GetDC()得到的DC, 必须调用ReleaseDC() 用CreateDC()创建的DC, 必须调用DeleteDC() 
 一般情况下,上面这个代码也能够工作,就是有时要报一点- CHandleMap::RemoveHandle(HANDLE h)异常,跟踪进代码也看不出啥问题.
 区别:
 ReleaseDC()仅是释放对DC的引用
 DeleteDC()是删除DC对象, 使用GetDC()的时候,明显的这个DC不是我们自己创建的,使用DeleteDC()的话就会将别人(通常是MFC框架)创建的DC干掉,这样当别人要使用自己创建的DC时,就会产生异常了.
 ReleaseDC()恰好解决这个问题,它仅是释放一个引用,告诉创建者DC,我已经不用了.
 最小化,最大化,尺寸拉伸异常中断问题解决!!(因为最小化,最大化,尺寸拉伸时都要调用DC来重绘)
- 添加//DDX_Control(pDX, IDC_PICTURE, m_Picture); //自定义的picture控件的问题 
 添加编辑框的问题只能用GetDlgItem(IDC_Freq),不能用CEdit m_Freq;
- 添加有字符显示的控件 就有问题,拷贝的图像从那个控件开始显示 原来自定义的IDC_PICTURE的ID号和刚添加的控件ID重复相同了!!!!!!!!!!!!!!!!! 
- InitInstance Run-Time Check Failure #2 - Stack around the variable ’dlg’ was corrupted.- 缓冲区溢出原因终于找到:之前是,不是= - //一组数据接收完成显示 - if(Data_Index = m_Chart.GetRowCount())
 但改为=数据就少了一个,图向右移
 最终原因:
 m_Data[]数组溢出越界
 由m_Data[Data_Length]改为m_Data[Data_Length+1];问题解决。





 
 