数据提取期间OTAClient.dll / TDAPIOLIB重复访问冲突错误

时间:2014-09-17 17:20:13

标签: c# dll visual-studio-2013 alm

好的帮派,这个人已经把我挡了三天了。

我编写了一个应用程序,使用其功能从HP的应用程序生命周期管理系统中提取数据。 OTAClient.dll直接来自Hewlett Packard。但是,命名空间实际上是代码中的TDAPOlib。

应用程序本身运行良好。所有方法都正确地为系统中标识的其他项目提取数据。但无论何时运行,OTAClient.dll都将不可避免地爆发出一个无法忽略的0xC000005访问读取违规警告。你可以继续直到完成,但由于它是一行一行,这是不可能的。

我经历了广泛的系统中的数据,以确保它满足应用程序的要求。我知道权限是对的。我有最直接从HP获得的最新OTAClient。我知道我写的所有方法都能正常工作。

我唯一的理论是.dll和Visual Studio之间存在某种版本冲突。我今天更新到Ultimate 2013,看它是否改变了什么,应用程序的运行时间比以前更长。我删除了可能引用的所有注册表项。最终它与OTAclient没有向后兼容......有些东西。我只是不知道它可能是什么。

enter image description here

此图像是在访问冲突时从调用堆栈中获取的。这告诉我OTAClient正在造成它。

主要是我只是想知道在哪里看。我错过了什么?我应该去别的地方看看吗?

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

我已经在C#中广泛使用了API,并且从未遇到过这个问题。我通常遵循的步骤:

  1. 在我的网络浏览器中打开ALM应用程序只是为了确保加载了所有必备软件(不是真的有必要,但我知道它运行起来我感觉更好)。
  2. 打开ALM应用程序的加载项页面并执行客户端注册。这是在机器上注册COM组件所必需的
  3. 在Visual Studio中,添加" OTA COM类型库"组件到我的项目
  4. 之后,我可以使用var tdc = new TDConnectionClass();创建对象以开始使用API​​。