我用本机C++编写了一个ActiveX控件(OCX),使用VS2008。如何通过使用.NET应用程序的过程来调试ActiveX控件?
当我附加到Microsoft ActiveX控件测试容器(TstCon32.exe)的线程和我自己的原生cpp应用程序引用该控件时,我可以正确调试它。
但是,我不能通过将它附加到引用MyCtrlNameLib.dll
和AxMyCtrlNameLib.dll
的控件的.NET winform应用程序的线程来调试它。它在我的中断点上显示以下消息:
断点当前不会被命中。没有符号被载入这个文件。消息
我不知道是否有一种方法来调试我的ActiveX控件引用的.NET Winfrom应用程序。
我认为问题是我的.NET应用程序没有加载MyCtrlName.ocx,因此没有添加MyCtrlName.pdb。它加载InterOp.MyCtrlNameLib.dll和AxInterOp.MyCtrlNameLib.dll。
是的,我看到没有MyCtrlName.ocx在调试模块窗口中,只有AxInterOp.MyCtrlNameLib.dll和InterOp.MyCtrlName.dll被加载。 – SuperLucky 2013-03-14 15:28:39
但是,使用explorerXp,MyWinApp.exe会加载MyCtrlName.ocx。所以我认为这个过程实际上执行它,但是当你使用托管代码附加一个进程时,VS只是忽略那些非托管代码的模块?嗯,我有一些实验要做。无论如何,谢谢你的帮助。 – SuperLucky 2013-03-14 15:40:14