Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何调试C#类库COM互操作组件_C#_Debugging_Com Interop - Fatal编程技术网

如何调试C#类库COM互操作组件

如何调试C#类库COM互操作组件,c#,debugging,com-interop,C#,Debugging,Com Interop,我有一个C#类库,我也通过COM互操作使用它。为了测试库,我在解决方案中添加了一个C#test应用程序,将其设置为启动项目,然后我就可以这样测试它了。这个库工作得很好,但当从Visual C++ 6测试应用程序通过COM互操作调用时,其中一个函数不起作用。在这种情况下,如何调试库?我在谷歌上搜索了一个解决方案,但我能找到的唯一建议是在解决方案中添加一个测试应用程序,在这种情况下我当然不能这样做 编辑:非常抱歉。我忘了说Visual C++测试应用程序是Visual C++ 6,,首先是开机Vis

我有一个C#类库,我也通过COM互操作使用它。为了测试库,我在解决方案中添加了一个C#test应用程序,将其设置为启动项目,然后我就可以这样测试它了。这个库工作得很好,但当从Visual C++ 6测试应用程序通过COM互操作调用时,其中一个函数不起作用。在这种情况下,如何调试库?我在谷歌上搜索了一个解决方案,但我能找到的唯一建议是在解决方案中添加一个测试应用程序,在这种情况下我当然不能这样做


编辑:非常抱歉。我忘了说Visual C++测试应用程序是Visual C++ 6,

,首先是开机Visual Studio和Visual C++。在VC++中启动测试应用程序。之后,在VS中,打开调试菜单并选择附加到进程。这将显示正在运行的当前进程的列表,选择与测试应用程序对应的进程,然后单击“附加”。这将使您能够放置断点并调试DLL。

需要更多信息。您可以通过尝试找出未获得预期值的原因来进行调试,您可以通过在调用COM方法之前和之后调试自己的代码来进行调试。这正是问题所在。如何调试?对不起,我认为你误解了这个问题。你究竟为什么要使用这样一个古老的C++编译器?这当然是问题所在,VS6对C#调试一无所知。通过将C++项目添加到解决方案中来解决问题,这样你就可以调试它们。我之所以使用VC6创建测试应用程序是因为我有一个旧的VC6应用程序需要使用这个组件。然而,使用一个简单的测试应用程序来尝试并找出它不起作用的原因更容易。我已经用VS2010测试应用程序调试了该组件。很好用。我已经试过了,但没用。它附加到进程中,但是所有断点都变为灰色。抱歉,我否决了这个答案,但实际上是我的错,因为没有解释测试应用程序是通过COM互操作连接到我的C库的Visual C++ 6。您是否使用DIL的调试版本?在Project属性窗口中,在调试选项卡中,您是使用启用的非托管代码调试还是取消选中启用VisualStudio托管进程来尝试它的