0

最近我一直在研究与 AutoCAD 通信的外部 .exe。因为它是一个外部的.EXE,所以我必须使用 COM 来获得我想要的东西。(否则我本可以使用(在我看来)更好的 .NET API)。

无论如何,我不断收到 COM 互操作错误(Call 被 Callee 拒绝),我在处理它时遇到了很多麻烦。我可以使用计时器,但有时它会过度等待或等待特定情况。此外,如果我必须使用速度较慢的计算机,这不是最好的解决方案。

4

1 回答 1

0

微软的解决方案:

  1. 将以下类添加到您的应用程序中。
  2. 添加对“Microsoft Development Environment 8.0”的引用。这会将对 EnvDTE 和 EnvDTE80 的引用添加到您的解决方案中。

    添加对 System.Windows.Forms 的引用。

  3. 在代码中,创建一个 EnvDTE80 实例,如下例中所述。
  4. 调用 Message.Register 来处理线程错误。
  5. 像往常一样调用您的自动化代码。
  6. 当您的自动化代码完成后,调用 Message.Revoke 以删除线程错误处理程序。

http://msdn.microsoft.com/en-us/library/vstudio/ms228772(v=vs.100).aspx

输入

为了使用错误管理代码(一旦添加了类),我们需要添加一个导入,例如:

Imports WindowsApplication1.ConsoleApplication2
于 2013-04-18T19:39:32.750 回答