c#调试状态下的无故退出 10
使用c#调试程序时,有时候会遇到自动退出的现象,经查该代码无任何异常,怀疑是引用dll不一致造成,但是本解决方案未出现该不一致的情况,我使用的是。net2008,有没有人...
使用c#调试程序时,有时候会遇到自动退出的现象,经查该代码无任何异常,怀疑是引用dll不一致造成,但是本解决方案未出现该不一致的情况,我使用的是。net2008,有没有人遇到类似的问题,并期待高手给予解决。
项目较大,工程可能涉及到几十个,且相关dll互相调用较多,目前现象是在三维dll内某个构造函数跳出,但我可以肯定这个构造函数及该类本身并没有问题,因为主框架使用二维的早期版本dll时并没出问题,后来更新二维dll库引起现在的三维dll调试退出。最关键问题是没有捕捉到任何异常,这个比较郁闷。
目前找到了应付式的解决方法:先初始化二维,再初始化三维;或者在三维初始化后马上new一个三维方面的Icon(即之前在构造函数退出的类),这样对二三维的顺序就没要求了。不满足以上条件的,都要在使用过程中无提示无异常代码的退出调试。 展开
项目较大,工程可能涉及到几十个,且相关dll互相调用较多,目前现象是在三维dll内某个构造函数跳出,但我可以肯定这个构造函数及该类本身并没有问题,因为主框架使用二维的早期版本dll时并没出问题,后来更新二维dll库引起现在的三维dll调试退出。最关键问题是没有捕捉到任何异常,这个比较郁闷。
目前找到了应付式的解决方法:先初始化二维,再初始化三维;或者在三维初始化后马上new一个三维方面的Icon(即之前在构造函数退出的类),这样对二三维的顺序就没要求了。不满足以上条件的,都要在使用过程中无提示无异常代码的退出调试。 展开
展开全部
前几楼已经说了很多情况了,我想提醒你是否程序更换了目录 或调用 的dll文件移动或丢失。、
如果还不粗键能判断问题,最好能单步调试,看是哪一行代码退橡卜出,再具体分析。
如果方便可以把代码贴出来这样有利于大家分析问题。
我也用。net 2008 c#,遇到过目录变量程序退出的情况,你可岩如巧以参考。
如果还不粗键能判断问题,最好能单步调试,看是哪一行代码退橡卜出,再具体分析。
如果方便可以把代码贴出来这样有利于大家分析问题。
我也用。net 2008 c#,遇到过目录变量程序退出的情况,你可岩如巧以参考。
追问
怀疑是最底层dll调用版本不一致,但是嵌套调用过于复杂,正在查找
追答
建议你把复杂问题简单化,可以考虑做一个简单程序,只调用二维dll和三给dll 这2个文件,看是否会出现同样问题。也有可能是新更新的dll文件存在什么问题,建议可以找一下这方面的问题。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
程序直接退出亩配烂考虑是否使用P/Invoke,P/Invoke参数签名如果不一致可能导致程序直接退出,一般情况卖笑下会提示出来签名不一致.
检查标有迅漏[DllImport]类似的代码
检查标有迅漏[DllImport]类似的代码
追问
该构造函数是从最底层写的,没有找到您所描述的情况
追答
跟你你上边的描述,引用有外部的DLL 所以很可能是外部DLL发生堆栈上的错误 导致程序直接退出.一般程序直接退出可能的原因是发生"Error".所以你可以考虑检查下DLL,如果不是你们开发的 可以联系下开发商
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1, 删掉所有 try {} catch() 再调试,
2,重装系统
看似无聊的答案春猛州,其实蕴涵的是上善若水知虚的 道理 给不给分 你扒蔽看着办吧
2,重装系统
看似无聊的答案春猛州,其实蕴涵的是上善若水知虚的 道理 给不给分 你扒蔽看着办吧
更多追问追答
追问
单步跟到最基本的构造函数里,就跳出(无try,catch),另外重装系统也不可取,如果一个程序一定要挑系统(32位和64位的区别除外),那可能用户就只有自己了
追答
新建项目 代码最简 测试 如果问题依旧 请帖出你的原代码、
重装系统 并不是指net2008要挑系统,而是指你的系统在长久运行后,可能被“腐蚀”,这不怪2008 只怪微软自己的dll和com技术 哈哈
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
学习有一段时间的C#之后感觉,除了自己的代码逻辑错误会导致程序崩溃意外,还没有遇见您说侍饥枯的这样肢族的问题?或许您老洞应该截一张图片让我看一下。
追问
如果调试状态下,代码逻辑错误或者其他错误未捕捉异常的情况下,一般调试器会给出明确错误信息,比如异常类型和异常原因,但是我的程序什么都不提示,就直接跳出了调试,很郁闷。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
控制台应用程序会绝喊有这种情况带毕。
当你的程序里面没有任何关于要求用户并行野输入字符的代码就运行,而且运行时点击的是那个绿色的三角形或按得是F5键,就会这样。如果按Ctrl + F5运行就不会出现这种情况
如果是窗体应用程序,很不好意思,我到目前为止好没有遇到这种情况,也不知道怎么解决
当你的程序里面没有任何关于要求用户并行野输入字符的代码就运行,而且运行时点击的是那个绿色的三角形或按得是F5键,就会这样。如果按Ctrl + F5运行就不会出现这种情况
如果是窗体应用程序,很不好意思,我到目前为止好没有遇到这种情况,也不知道怎么解决
追问
是form程序,单步跟的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询