AutoCAD 二次开发学习系列【5】 - 开发过程中的问题整理

来源:互联网 发布:linux nc 监听端口 编辑:程序博客网 时间:2024/06/05 12:49

开发这个项目有3个星期了,其中碰到了一些问题,但总是都解决掉了,不管是靠google还是自己试验。为了以后能少走弯路,也是对自己经验的一个总结,现在该整理下了。其中碰到的问题大致分为以下几类:

  1. VC工程方面的问题。
  2. MFC和Windows编程方面的问题。
  3. 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/】,很好用,大家不妨试一试。



原创粉丝点击