自己遇到的BUG积累

1、用VS2005,C++使用GDAL的动态库时,报编译错误

Error 28 error LNK2019: unresolved external symbol __imp___CrtDbgReportW referenced in function "public: __thiscall std::_Vector_const_iterator<struct GDALColorEntry,class std::allocator<struct GDALColorEntry> >::_Vector_const_iterator<struct GDALColorEntry,class std::allocator<struct GDALColorEntry> >(struct GDALColorEntry *,class std::_Container_base const *)" (??0?$_Vector_const_iterator@UGDALColorEntry@@V?$allocator@UGDALColorEntry@@@std@@@std@@QAE@PAUGDALColorEntry@@PBV_Container_base@1@@Z) match1.obj 

解决方法:Configuration Properties -> C/C++ -> Code Generation -> Runtime Library, make sure this is set to either "Multi-Threaded Debug DLL (/MDd)" if you are linking with the dll runtime or "Multi-Threaded Debug (/MTd)" if you are statically linking with the runtime.


2、用VS2005编译SharpMap/Branches/0.9.5中的SharpMap.Extensions时报错“Error103Unsafe code may only appear if compiling with /unsafe”

解决方法:在工程属性中勾选“Allow Unsafe code”

unsafe screenshot

3、VS2008无法捕捉到断点,调试的时候原来的断点处显示一个空心圆加一个右下角的警告图标的解决方案。

今天(2013年9月18日,牢记历史!)本来写代码调试得好好的,突然加了一句话以后无法调试了,原来红红的断点处在调试的时候变成了空心圆加一个右下角的警告图标,如果临时让断点生效,可以选择右键点击断点,Location,把Allow Source code to be different这个选项勾上,但是编译的时候又提示“the source file is different from when the module was built”,虽然点确定也能过去,但是问题始终是没有解决的,感觉应该是修改代码以后IDE不知哪里没更新,导致它认为两份源代码不一样

解决方案:

Tools-Options,选中Debugging选项卡,里面有个“Require source to exactly match...”的勾先去掉,然后稍微修改下代码,保存后,再把勾勾上,这样就好了。

4、VS2008在处理字符串的时候报错“”Error 4 error C2664: 'FindFirstFileW' : cannot convert parameter 1 from 'char [1024]' to 'LPCWSTR'

这种涉及到普通字符转换为宽字符(W)的时候,需要在项目属性里Configuration Properties——General——Character Set,改为Use Multi-Byte Character Set,这样就不报错了,就可以通用了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果你经常在C++代码中遇到bug,以下是一些建议可以帮助你改进: 1. 仔细检查语法和拼写错误:C++对语法和拼写错误非常敏感,一个小错误可能导致整个程序崩溃。请确保你的代码中没有简单的拼写错误或语法错误。 2. 编写清晰的代码:编写易于理解和维护的代码是减少bug的关键。遵循良好的编码规范,使用有意义的变量和函数命名,并进行适当的注释。 3. 使用模块化的设计:将代码分成小的可重用模块,每个模块只负责特定的功能。这样可以提高代码的可读性和可维护性,并且可以更容易地定位和修复bug。 4. 测试你的代码:编写测试用例来验证你的代码是否按预期工作。包括正常情况下的输入、边界条件和异常情况。测试能够帮助你发现潜在的问题和bug,并确保代码在不同情况下都能正确运行。 5. 使用调试工具:利用调试器和其他调试工具来帮助你定位和修复bug。通过设置断点、观察变量值、查看堆栈信息等方式来分析程序执行过程中的问题。 6. 阅读文档和教程:学习和熟悉C++的基本概念、语法和常见的编程技巧。阅读官方文档、书籍和学习资源可以帮助你更好地理解语言和避免一些常见的错误。 7. 参考他人的代码和解决方案:在遇到问题时,可以搜索互联网上的解决方案、代码示例和开源项目,借鉴其他人的经验和思路。 最重要的是,持续学习和实践。通过不断练习和积累经验,你将能够逐渐提高自己的编程技能,并减少在C++代码中遇到bug

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值