1.VC2005:无法执行添加/移除操作,因为代码元素是只读的....多个解决办法
最近在编程过程中偶尔会遇到这个错误, 非常烦人, 因为一旦添加事件处理函数就会弹出这个窗口
解决方案:
1、重启VC
2、打开Resource.h文件看看 一看就知道了 有些定义重复了 可以手动改掉 保存 编辑器重新加载 。。。。。。。。
3、关闭解决方案,删除ncb文件重新添加即可
4、实在不行就手动添加消息处理
5、查看.h和.cpp文件的属性,有可能是只读的,修改属性后就可以了
6、把你要添加事件的对话框相应的类文件(*.h和*.cpp)给关了就可以了
上面几种方法网上搜罗的。推荐第3种。
PS:第三种办法确实是有效的!
2、mfc编程怎么用编辑框输入值并用另一个编辑框输出内容
void CMy11Dlg::OnButton1()
{
// TODO: Add your control notification handler code here
CString str;
GetDlgItemText(IDC_EDIT1,str);
//用GetDlgItemText(文本框ID,字符串),将文本框内容存放到字符串中.
SetDlgItemText(IDC_EDIT2,str);
//用SetDlgItemText(文本框ID,字符串),将文本框的内容设置为字符串的内容.
}
至于需要用文本框的内容计算.
如果内容是数字的话. 可以通过int t=atoi(str);将其转换int类型.
计算完成后,将结果Format到字符串中.
如:
int t=atoi(str);
t+=2;
str.Format("%d",t);
//在文本框1输入12, 文本框2的内容就是14.
3、MFC中CString转换成char数组的问题 |
|
|
4、strcpy_s Buffer is too small 解决方法
错误信息如下: Microsoft Visual C++ Debug Library Debug Assertion Failed! Program: ######.exe Expression: (L"Buffer is too small" && 0) For information on how your program can cause an assertion (Press Retry to debug the application) Abort Retry Ignore 函数声明如下: strcpy_s(char *strDestination, size_t sizeInBytes, const char *strSource ); 问题就出在第二个参数上,sizeInBytes的值必须比strSource 存放的字符数大1。比如strSource 有6个字符,sizeInBytes的值就应该为7,多出来这个用来添加字符串的结束符'/0'; 一般用法如下: strcpy_s(strDestination, strlen(strSource )+1, strSource ); 注:strDestination必须有足够的空间存放strSource中的字符。 |
5、char型字符串转换为十六进制整数问题
int main()
{
char a[9]="1234567a";
long b=0x1;
sscanf(a,"%x",&b);
printf("%x",b);
return 0;
}
6、警告信息 warning C4018: 有符号/无符号不匹配
--------------------------------------------------------------------
仔细研究之后发现是进行了与v.size()有关的操作引起的,用其中容器中与size()是被定义为unsigned int 型,而我们在遍历时会用int型导致警告的产生,因此在int 前面添加 unsigned即可。
例子如下:
1. /**
2. 求向量中所有元素的交错和
3. @param v欲求交错和的向量
4. @return 返回所有元素的交错和
5. */
6. double alternating_sum(const vector<double>& v)
7. {
8. if(v.size()==0) return false;
9. double sum=0.0;
10. for(unsigned int i=0;i<v.size();i++)
11. {
12. if(i%2==0)
13. sum+=v[i];
14. else sum-=v[i];
15. }
16. return sum;
17. }
-------------------------------------------------------------
上面的函数中 将for循环中的i设置为unsigned int 型
for(unsigned int i=0;i<v.size();i++)
------------------------------------------------------------