最近遇到的c++问题及解决汇总

1 error BK1506 : cannot open file '.\Debug\????????.sbr': No such file or dire

解决方法:

从工程->设置->浏览信息->创建创建浏览信息的复选框的勾给去掉就行了

工程---属性---C/C---Browse Information -----Enable Browse Information  设置为NONE

2 在资源视图中,打开资源文件时,跳出Runtime Error     This application has requested the Runtime to terminate it in an unusal way .

解决方法:

将工程下的.aps文件删除就可以了

3 debug下 对话框跳出 Release下对话框初始后没有跳出

经测试,有一个函数未做调用失败处理,导致下面的数组索引为负值

两个版本的不同,很多情况是数组过界等引起的

DEBUG版本未做优化    RELEASE版本进行了优化, 若两者不同,很可能语句不安全引起的。

4 ~CCmdTarget()  断言错误

[cpp] view plain copy

  1. CCmdTarget::~CCmdTarget()   
  2. {   
  3. #ifndef _AFX_NO_OLE_SUPPORT   
  4. if (m_xDispatch.m_vtbl != 0)   
  5. ((COleDispatchImpl*)&m_xDispatch)->Disconnect();   
  6. ASSERT(m_dwRef <= 1); //此处出现断言错误  
  7. #endif   
  8. #ifdef _AFXDLL   
  9. m_pModuleState = NULL;   
  10. #endif   
  11. }    


但是通过调试,没找到问题 ,于是重新编译了下,就正常了 

遇到稀奇古怪的错误时,可以先把工程 重新清理编译下,看看是否还有问题

5如何禁用 VS2010 的 vcpkgsrv.exe 运行

VS2010 的 vcpkgsrv.exe(Microsoft Visual C++ Package Server)很烦,会自动运更新,占用相当大的内存(在我的机器中 >150M),而且一般会出现多个,杀掉还会自动出现。其实我们可以很容易禁用它,只要 Disable IntelliSense 即可,位于:
Tools - Options - Text Editor - C/C++ - Advanced - IntelliSense - Disable IntelliSense:True

6 资源管理器跑右边了,重置窗口  也不起作用

工具》导入和导出设置>重置所有设置>否,仅重置,从而改写我的当前设置>下一步选择VisualC++默认设置。完成。

7 在析构函数中调用KillTimer(1);  引起断言错误

[cpp] view plain copy

  1. killtimer函数的源代码:  
  2.  {  
  3.     ASSERT(::IsWindow(m_hWnd)); //析构函数里面m_hWnd是无效的,当然assert出错了。  
  4.     return ::KillTimer(m_hWnd, nIDEvent);  
  5.   }  


改在OnOK()中调用

8 “WriteHuge”: 不是“CFile”的成员 

遇到这种情况的解决方法把代码中的ReadHuge换成Read、WriteHuge换成Write即可。

原因是VC++2005及后续VC版本中的CFile没有ReadHuge和WriteHuge成员函数,只在VC6中的CFile才有,不过ReadHuge()函数已被Read()函数代替,WriteHuge()函数已被Write()函数代替

数据库打开后,再重新打开后 出现未知错误

  经查,竟是DOMODAL 引起的,  将DOMODAL 注释掉 就没有问题了,  实在是奇怪

  之好,将数据库的释放  改在了整个程序的结束, 而不是进程的结束, 这样就不需要重新打开

猜你喜欢

转载自blog.csdn.net/lovekdy/article/details/51577823