【发布时间】:2015-07-31 17:21:02
【问题描述】:
背景简介:这是一个大型且古老的软件项目,涉及 C# UI 代码和一些底层 C++ 代码。这个问题与 C++ 代码有关。
C++ 负责在显示快速移动的波形和快速变化的数据的屏幕方形区域上创建“高效”(当时)滚动效果。显然,我们的图表软件 [TeeChart,我们仍在使用] 内置的“滚动”功能并没有减少它。 (也许 TeeChart 2013 现在确实有足够的滚动?不确定...)
现在显然正在使用的 C++ DirectX 7 程序集是“dx7vb.dll”。这让我有点困惑,因为“dx7vb.dll”意味着 Visual Basic。
我想用一些现代 DirectX 或 OpenGL 调用(或 TeeChart 调用,如果可能的话?)替换这个 DLL。 问题是,我不知道在哪里可以找到有关 DirectX 7 的参考,所以我可以对 DX7 调用进行逆向工程并确定合适的替代品。 (但是,我确实了解需要发生的事情,并且我对 OpenGL 有深入的了解,因此这也可能是一种选择......)
所以我的问题是:
- 在哪里可以找到有关此“dx7vb.dll”的某种解释?它与 Visual Basic 有某种关系吗?
- 什么是 C++ 中的“.TLB”文件?只是另一种组装方式?
- 使用的核心对象是 IDirectX7Ptr,它有 2 个 google 搜索结果...有人知道这个对象的相关信息,以便我了解调用的目的吗?
- 现代 TeeChart .NET 库是否比 15 多年前更好地支持实时显示?
非常感谢您抽出宝贵时间。
编辑:要清楚,是的,我有所有的来源。我显然没有“dx7vb.dll”的来源。
EDIT2: 在注册表中查看了一番后,我发现它实际上注册为“DIRECT.DirectX6.0”,并且大多数正在注册的 COM 对象都引用了“DirectX 6”。因此,在经典的 Microsoft 时尚中,“dx7vb.dll”似乎包含 DirectX 6 对象的信息...
【问题讨论】:
-
你有这个库的源代码吗?如果是这样,并且如果您对现代 DirectX 或 OpenGL 有足够的了解,您应该能够逐行分析代码在做什么,然后替换它。我相信一些 DirectX7 参考资料和教程仍然存在。
-
听起来代码正在使用 DirectX 7 的 OLE 自动化接口。但是,在 DirectX 7 的常规 COM 接口上使用 C++ 中的自动化接口没有任何意义。不过,根据类型库的可用性,使用 C# 代码可能是有意义的。 .TLB 是一个 COM 类型库。它描述了 COM 对象、接口和相关类型。这不是一种组装。 dx7vb.dll 也不是。
-
另外 dx7vb 实际上可能不是 Visual Basic,而是 Vertex Buffer。只是在这里大声思考。
-
很抱歉这两个搜索结果之一是中文。但是这个问题贴出来之后,现在居然有3个结果了。
-
TeeChart .NET 库现在包含一个 TeeChart.Direct2D.dll,它使用 SlimDX 与 Direct2D 交互。 Steema 的网站上提供了评估版。
标签: c++ directx teechart data-acquisition