AutoCAD 二次开发学习系列【5】 - 开发过程中的问题整理
2012-12-29 15:30
274 查看
开发这个项目有3个星期了,其中碰到了一些问题,但总是都解决掉了,不管是靠google还是自己试验。为了以后能少走弯路,也是对自己经验的一个总结,现在该整理下了。其中碰到的问题大致分为以下几类:
VC工程方面的问题。
MFC和Windows编程方面的问题。
AutoCAD开发方面的问题。
1.不能调试
问题:编译出来的arx(既DLL),在加载到AutoCAD以后,用VS用attach调试,发现不能加载断点。这种情况一般是由于符号表没有加载导致。具体有两种可能,一种是符号表(pdb)文件没有找到;另一种是符号表格式不对或者不支持。
第一种可以通过在调试时指定symbol path来解决。第二种可用通过改变Debug Info Format来解决。我的情况为改为/Z7可以解决。具体的介绍可以参考【http://msdn.microsoft.com/zh-cn/library/958x11bc(v=vs.80).aspx】
2.加载时Assert报错
问题:在加载AutoCAD时,弹出了对话框,是Assert错。
解决:我是通过修改Code Generation的选项来解决的。暂不影响调试。
3.链接时报错
问题:在链接成DLL或可执行文件时,如果碰到碰到error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0'。这个宏是个组合选项,它是用来通知编译器在编译时进行迭代器安全检查的,在【http://msdn.microsoft.com/en-us/library/hh697468(v=vs.110)】详细介绍个这个宏的用途。
解决:选中特定的文件,改变其编译时的宏参数(单个文件可以有自己的编译选项,可以和工程的编译选项不同),给_ITERATOR_DEBUG_LEVEL同样的值,解决链接时值不相同而导致链接出错的问题。
4.窗口大小的测定
有时需要严格确定窗口及其控件的大小,不能靠运行时看结果这种方法,太慢,也不严格。可以下载工具ruler for windows来解决。可以测量窗口的大小(像素)。地址在【http://www.arulerforwindows.com/】,很好用,大家不妨试一试。
VC工程方面的问题。
MFC和Windows编程方面的问题。
AutoCAD开发方面的问题。
1.不能调试
问题:编译出来的arx(既DLL),在加载到AutoCAD以后,用VS用attach调试,发现不能加载断点。这种情况一般是由于符号表没有加载导致。具体有两种可能,一种是符号表(pdb)文件没有找到;另一种是符号表格式不对或者不支持。
第一种可以通过在调试时指定symbol path来解决。第二种可用通过改变Debug Info Format来解决。我的情况为改为/Z7可以解决。具体的介绍可以参考【http://msdn.microsoft.com/zh-cn/library/958x11bc(v=vs.80).aspx】
2.加载时Assert报错
问题:在加载AutoCAD时,弹出了对话框,是Assert错。
解决:我是通过修改Code Generation的选项来解决的。暂不影响调试。
3.链接时报错
问题:在链接成DLL或可执行文件时,如果碰到碰到error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0'。这个宏是个组合选项,它是用来通知编译器在编译时进行迭代器安全检查的,在【http://msdn.microsoft.com/en-us/library/hh697468(v=vs.110)】详细介绍个这个宏的用途。
解决:选中特定的文件,改变其编译时的宏参数(单个文件可以有自己的编译选项,可以和工程的编译选项不同),给_ITERATOR_DEBUG_LEVEL同样的值,解决链接时值不相同而导致链接出错的问题。
4.窗口大小的测定
有时需要严格确定窗口及其控件的大小,不能靠运行时看结果这种方法,太慢,也不严格。可以下载工具ruler for windows来解决。可以测量窗口的大小(像素)。地址在【http://www.arulerforwindows.com/】,很好用,大家不妨试一试。
相关文章推荐
- AutoCAD 二次开发学习系列【2】 - 开始第一个工程
- AutoCAD 二次开发学习系列【1】- 初步了解开发环境
- AutoCAD 二次开发学习系列【3】 - 注册外部命令
- AutoCAD 二次开发学习系列【6】 - 视口
- AutoCAD 二次开发学习系列【4】 - 实现CPropertySheet进行用户交互
- 最近在ArcGIS Engine开发中关于调用gp工具过程出现COM 组件的调用返回了错误 HRESULT E_FAIL 错误的解决方法 和 学习oracle中遇到的一些问题总结
- IDL——ENVI二次开发初始化问题:多过程的二次开发初始化
- dwz问题(本文主要是供个人学习成长之用,陈述的是本人在开发过程中遇到的几个小问题的总结,可能兼或插入一些网络资料)
- hibernate 开发学习过程中遇到的问题:
- 分布式缓存技术redis学习系列(一)——redis简介以及linux上的安装以及操作redis问题整理
- C++ 学习拾遗 —— 点滴记录C++学习过程中遇到的问题以及整理
- AutoCAD二次开发之.net API学习笔…
- 学习ffmpeg.c过程中遇上的系列问题
- 整理iOS工作学习过程中遇到的各种问题
- AutoCAD二次开发之.net API学习笔…
- Liferay 6.1开发学习(十八):Liferay开发过程中的一些常见问题
- 【开发过程问题汇总系列】【定时器】Timer运行的过程中把系统时间修改为以前的时间会停止运行的问题
- IOS开发系列--学习资料整理
- AutoCAD .NET API二次开发学习指南
- 【J2me 2D 游戏开发系列】◣Himi游戏开发启蒙教程◢Java零基础学习J2me游戏开发全过程!