我编写了一个应用程序,使用其功能从HP的应用程序生命周期管理系统中提取数据。 OTAClient.dll直接来自Hewlett Packard。但是,命名空间实际上是代码中的TDAPOlib。
应用程序本身运行良好。所有方法都正确地为系统中标识的其他项目提取数据。但无论何时运行,OTAClient.dll都将不可避免地爆发出一个无法忽略的0xC000005访问读取违规警告。你可以继续直到完成,但由于它是一行一行,这是不可能的。
我经历了广泛的系统中的数据,以确保它满足应用程序的要求。我知道权限是对的。我有最直接从HP获得的最新OTAClient。我知道我写的所有方法都能正常工作。
我唯一的理论是.dll和Visual Studio之间存在某种版本冲突。我今天更新到Ultimate 2013,看它是否改变了什么,应用程序的运行时间比以前更长。我删除了可能引用的所有注册表项。最终它与OTAclient没有向后兼容......有些东西。我只是不知道它可能是什么。
此图像是在访问冲突时从调用堆栈中获取的。这告诉我OTAClient正在造成它。
主要是我只是想知道在哪里看。我错过了什么?我应该去别的地方看看吗?
感谢您的帮助。
答案 0 :(得分:1)
我已经在C#中广泛使用了API,并且从未遇到过这个问题。我通常遵循的步骤:
之后,我可以使用var tdc = new TDConnectionClass();
创建对象以开始使用API。