关于Winform生成dll在cad中的调试问题
开发平台:vs2017,win10,CAD2014
对于有Form的dll在启动cad后无法设置断点,网上大部分的中文资料都无法成功设置断点,浪费了几乎一天的时间,最后在翻到一篇博客,和国外cad开发论坛,这个问题才完美解决。
首先中文文献是:
- 问题原因:
原因在于AutoCAD的纤程(Fiber)。是的,是纤程(Fiber)而不是线程(Thread)。VS2010的调试器和AutoCAD的纤程一起工作时会有问题。解决的办法就是关闭AutoCAD纤程。 - 解决办法:
在CAD中输入命令nextfiberworld,查看系统变量,1是开启,0是关闭,如需调试,则关闭纤程。该命令只用执行一次,下次开启时会保留。
一篇英文论坛同样提到该问题,同时解决了:该方法会引起的另一个问题,就是调试时,如果你打开一份已经画好的cad图纸,会变得非常得卡,这个问题很有意义,因为调试cad时你需要用到你自己画好的图纸。
解决办法很简单,启动cad后,首先把默认图纸关闭,再打开准备好的图纸。
在纤程状态下只能开启一张图纸
所以如果不调试的时候,最好把nextfiberworld参数设置为1。
后面还是会出现无法调试的问题。
解决办法有一个是把文件夹放到桌面或者C盘,不知道是不是文件名过长。
还看到一些文章说,调试不是最好的思路,最重要的是逻辑思路,看每一块是不是运行正确。。。。。。。。好吧。