• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 241
  • Last Modified:

XP to VM glitch

Greetings,

    Can anyone help with a problem I'm having where I
have coded an  MS Access 2003 program that has run
faithfully for years under Win XP with DirectX8 on two
different vintage laptops but now fails under
VMWare Workstation 7.0.1.
    I used Acronis True Image to copy a complete image
of the laptops C drive to the virtual host.  It boots
XP with no problem, runs Access with no prob.  But it
dies while running my program giving the following error;

     Microsoft Visual Basic
      Run-time error "91":
            Object variable or With block variable not set

If I select Debug, it jumps in the code to the line;
            diDev.Poll

Note in the begining of the code code are the lines;
            Dim di As DirectInput8
            Dim diDev As DirectInputDevice8
            Dim diDevEnum As DirectInputEnumDevice8

Note:  On the laptops (running XP)  the program runs
withOUT any problem.

Thanks.
0
Spudstah
Asked:
Spudstah
3 Solutions
 
Scott McDaniel (Microsoft Access MVP - EE MVE )Infotrakker SoftwareCommented:
In most cases you must install referenced libraries like that. I'm not sure if TrueImage would do this properly, but it would sure seem like it would.

Do you have the installation media for DirectInput8 (whatever that is)? If so, try running that on the vmWare install to see if that resolves it.
0
 
dbruntonCommented:
Possibly ...

It looks like you are trying to run DirectX commands.  Check that the laptop supports DirectX.  See http://pubs.vmware.com/workstation-10/topic/com.vmware.ws.using.doc/GUID-EA588485-718A-4FD8-81F5-B6E1F04C5788.html

You may also have to install VMWare Tools.  See https://www.vmware.com/support/ws5/doc/ws_vidsound_d3d_enabling_guestos.html
0
 
SpudstahAuthor Commented:
DirectInput8 is an internal of the Microsoft DirectX8 ("blackbox software")  DirectX8
interfaced the Input/Output communications.  Starting with DirectX10 microsoft
dropped it's legacy support of the input functions.  However, the WinXP OSs on
both laptops were running DirectX8 (which was the standard MS I/O and was
an integral part of the WinXP OS.

True image has always installed a "true image" for me in the past.  Meaning in part
that since DirectX8 is part of WinXP and WinXP is all imaged, like you, I don't see
True Image dropping the ball here.

Secondly, I have a host of WinXP Pro where I installed the host from an original full installation disk,, and it's acting the same.
0
 
SpudstahAuthor Commented:
dbrunton,

You are correct that I am trying to run DirectX commands  --- in a WinXP host that is a True Image of an WinXP OS running DirectX8.  The Host is being run in VMware Workstation on a laptop that's natively running DirectX10 so I would expect it to be capable of dealing with
8.

VMWare Tools is loaded
0
 
dbruntonCommented:
At the command line in the VM machine type

dxdiag

and see what that does.
0
 
SpudstahAuthor Commented:
dxbrunton,

  at new laptop native machine command line it shows DirectX11

  at the WinXP Host command line it shows WinXP  & DirectX9

at the legacy laptop command  line it shows WinXP  & DirectX9

In the WinXP Host dxdiag, ran the tests, all tests ran fine.
0
 
dbruntonCommented:
Yeah, but try dxdiag inside the Guest machine.
0
 
Andrew Hancock (VMware vExpert / EE MVE^2)VMware and Virtualization ConsultantCommented:
Has this run for years under VMware Workstation?

Probably it does not run, because the Virtual Machine does not have the 3D hardware to support DirectX v8.
0
 
SpudstahAuthor Commented:
dbrunton,

"at the WinXP Host command line it shows WinXP  & DirectX9"
was done at the command line of the WinXP Host running within VMWare.


Andrew,

It has run in WinXP as the loaded OS on laptop.    No VMware.
When my program was generated, 3D was still for the future.
The original laptop was totally divorced from 3D.
0
 
dbruntonCommented:
Note in the begining of the code code are the lines;
            Dim di As DirectInput8
            Dim diDev As DirectInputDevice8
            Dim diDevEnum As DirectInputEnumDevice8

If I select Debug, it jumps in the code to the line;
            diDev.Poll

which I presume is checking for input from some device

See http://msdn.microsoft.com/en-us/library/aa264506%28v=vs.60%29.aspx and the examples there with your error code.

It may be necessary in your code to check whether diDev has actually acquired anything.  For example

if diDev Is Nothing Then <<Pop up message>> stolen from http://www.pages.drexel.edu/~cwk23/vbJoystick.pdf
0
 
SpudstahAuthor Commented:
It turns out no answer helped find the problem.....although I did.

I'm at a quandry as to how to close this question so I spread the points out based on how many times a person responded.

The program runs as originally written.  The solution is that when loaded in VMWare the gamepad has to be plugged in After the host is running.  DirectX would not see one attached to the native computer..... Even if you used the VM device attach/switch option.
Once I found the trick of attaching the gamepad -After- the host was up and running, everything seems to be running fine.

Thanks for trying.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Tackle projects and never again get stuck behind a technical roadblock.
Join Now