1

Quick background: This is a large and old software project involving C# UI code and some underlying C++ code. This question pertains to the C++ code.

The C++ is responsible for creating an "efficient" (for the time) scrolling effect on a square region of the screen that displays fast moving waveforms and rapidly changing data. Apparently the "scrolling" that was built-in to our charting software [TeeChart, which we still use] just didn't cut it. (Perhaps TeeChart 2013 does have sufficient scrolling now? Not sure...)

Now apparently the assembly for DirectX 7 in C++ that is being used is "dx7vb.dll". This is a bit confusing to me, as "dx7vb.dll" implies Visual Basic.

I want to replace this DLL with some modern DirectX or OpenGL calls (or TeeChart calls if possible?). The problem is, I have no idea where to find reference on DirectX 7 so I can reverse engineer the DX7 calls and determine a suitable replacement. (I do, however, understand what needs to happen and I have a solid understanding of OpenGL, so that could perhaps be an option as well..)

So my questions are:

  • Where to find some sort of explanation for this "dx7vb.dll"? Is it somehow related to Visual Basic?
  • What is a '.TLB' file in C++? Just another type of assembly?
  • The core object that is used is IDirectX7Ptr which has 2 google results... Does anyone have information on this object so I can understand what the calls are accomplishing?
  • Do the modern TeeChart .NET libraries support REALTIME displays better than they did ~15+ years ago?

Thanks a ton for your time.

EDIT: To be clear, yes I have all of the source. I obviously do not have source for 'dx7vb.dll'.

EDIT2: After some looking around in the registry I found that it is actually registerd as "DIRECT.DirectX6.0" and most of the COM objects that are being registerd reference "DirectX 6". So in classic Microsoft fashion, 'dx7vb.dll' seems to hold information for DirectX 6 objects...

djrecipe
  • 90
  • 10
  • Do you have the source code for this library? If so, and provided you have sufficient knowledge of modern DirectX or OpenGL, you should be able to analyze what the code is doing line by line and then replace it. I believe some DirectX7 references and tutorials are still out there. – Banex Jul 31 '15 at 17:25
  • It's sounds like the code is using the OLE Automation interfaces to DirectX 7. However, It wouldn't make any sense to use to use the automation interfaces in C++ over the regular COM interfaces for DirectX 7. It might make sense though for C# code to use to it, depending the availability of type libraries. A .TLB is a COM type library. It describes COM objects, interfaces and related types. It's not a kind of assembly. Neither is dx7vb.dll for that matter. – Ross Ridge Jul 31 '15 at 19:14
  • Also dx7vb may not actually be Visual Basic, but Vertex Buffer. Just thinking out loud here. – Will Custode Jul 31 '15 at 19:20
  • 1
    I feel sorry that one of the two search results is Chinese. But after this question is posted, there are actually 3 results now. – user3528438 Jul 31 '15 at 19:20
  • 1
    The TeeChart .NET library now includes a TeeChart.Direct2D.dll which uses SlimDX to interface with Direct2D. An evaluation version of this is available from Steema's website. – Christopher Ireland Aug 03 '15 at 08:14
  • Thank you Christopher Ireland - perhaps you should submit your response as an answer? Although my question was not very clear and many people here were helpful, it seems the information you provided me is the most pertinent. – djrecipe Aug 11 '15 at 17:37

2 Answers2

0

I'm having a tough time finding anything specific to DirectX 7.0, but I have found old reference material for DirectDraw, if that's the DX component you're using. You can check it out here. I'll continue digging.

Furthermore, you can check out this article that has some legacy (Windows 2000) era DirectX documentation. Under "Direct3D DDI" there's a section for DirectX 7.0 Release Notes, which makes me think there might be useful information here.

Will Custode
  • 4,576
  • 3
  • 26
  • 51
0

dx7vb.dll and dx8vb.dll were Visual Basic 6.0 assemblies for using DirectX 7 (1999) and DirectX 8 (2000) respectively. They are not part of DirectX any longer, and are not available for any version of Windows newer than Windows XP. This predates the legacy Managed DirectX 1.1 assemblies which were written for .NET (2002).

For .NET/C# code, the modern equivalent for accessing DirectX is SharpDX or SlimDX.

See DirectX and .NET

Chuck Walbourn
  • 38,259
  • 2
  • 58
  • 81