1、UpdateData(TRUE) 和 UpdateData(FALSE)的区别。
UpdateData(TRUE)控健变化通知程序更新内容。
UpdateData(FALSE)内容变化更新控健。
2、数组是在栈内分配的,通常VC默认的栈是1M,如果有数组过大,超过了这个数,就会导致编译出错,所以应该用动态的new。
3、在VC Debug版本里,栈中分配的值都会先用0xCCCCCCCC来处理一下,所以大家在Debug模式下调试程序发现在引用0xCCCCCCCC这样的值,就说明在试图使用一个没有初始化的值。这就是在Debug模式下调试的好处之一,如果在Release模式下,系统就不会用0xCCCCCCCC来处理一下了。至于为什么选择0xCCCCCCCC大概是因为 端点中断int 3 对应的机器码就是0xCC吧,我也不是很有把握。
4、不能让两个指针直接比大小,因为比较的是地址。
5、char*型字符串中加入变量的方法。
sprintf(szInfoArr, "无法对加载文件数据:%s /n 到image列中,条件是:ID=%d 提交事务!", strFile.GetBuffer(strFile.GetLength()), nPKValue);
6、CString 中加入变量的方法
strFailedInfo.Format(_T("第%d条信息存入表patient_image时发生错误,该条信息存储失败"), nItem);
7、CListCtrl
for(int i=0; i<(int)nNowColNum; i++)
m_ListCtrl.DeleteColumn(0); //这里很值得注意,之前我用的是DeleteColumn(i),
//结果总是删不干净,之后才发现,如果删除了某一列
//之后,它的列号重新从0开是分配,所以初始列号大的就删不掉
8、用windows自带的程序打开特定文件。
ShellExecute(NULL,"open","图片文件全路径",NULL,NULL,SW_SHOW);
9、如果用一个CString strTest = 一个whcar* 的指针,当whcar*被删除后,strTest 的内容还在。因为CString 本身就是一个类,它在构造变量的时候,进行了硬拷贝。
10、VC里边自己定义的ID,如IDC_FTP_CONNECT_BUTTON,在编译的时候才会自动生效。