这两天遇到个问题,在Winform中调用C++写的一个dll控件时用了两种方法在对控件进行实例化的时候均出错。
1.注册控件后,工具栏右键选择项,然后COM组件选中我所注册的控件,可以成功添加到工具栏,当我将工具栏中的控件拖放到Form上时,VS直接停止工作。
2.注册控件后使用 aximp对其进行操作,将生成的DLL直接右键->添加引用 引用到程序中然后在public Form1(){InitializeComponent();}中进行控件的初始化和实例化,在单步调试的时候程序走到实例化这一步,程序正常,但是里面的很多东西都引发了异常,继续执行的话则在将要执行到结束初始化的时候出错,没有错误信息,直接当前进程停止工作,调试的时候提示无法附加崩溃的进程,即无法调试。
请问一下怎么解决,可能描述上不清楚,大概就这样个情况,请大家多多担待,麻烦大家了。
1.注册控件后,工具栏右键选择项,然后COM组件选中我所注册的控件,可以成功添加到工具栏,当我将工具栏中的控件拖放到Form上时,VS直接停止工作。
2.注册控件后使用 aximp对其进行操作,将生成的DLL直接右键->添加引用 引用到程序中然后在public Form1(){InitializeComponent();}中进行控件的初始化和实例化,在单步调试的时候程序走到实例化这一步,程序正常,但是里面的很多东西都引发了异常,继续执行的话则在将要执行到结束初始化的时候出错,没有错误信息,直接当前进程停止工作,调试的时候提示无法附加崩溃的进程,即无法调试。
请问一下怎么解决,可能描述上不清楚,大概就这样个情况,请大家多多担待,麻烦大家了。
是在工具箱里面右键……这个办法不行。添加进去以后 我把加进去的控件拖放到Form中VS就直接停止工作了。
to:4楼 问题是用java调用是可以成功调用的,JS也能调。
它有捕获com异常的办法。。不要放在初始化里(InitializeComponent),因为发生错误,窗体都编辑不了。尽量不要用com,标准的DLL更容易部署和升级,也容易调试些
我用vs 2010建了一个ATL项目,创建了一个ATL控件,就一个按钮,已经够简单了,具体该怎么调整代码结构呢?