Measurement Studio for VB6

cancel
Showing results for 
Search instead for 
Did you mean: 

Installing cwui.ocx on Vista

Hello,

I'm having trouble installing cwui.ocx on Vista. can anyone help?

The details are as follows;

cwui.ocx from Measurement Studio for Visual Studio 6
Installshield 12

I've tried using the merge modules, cwui_ocx, mesa and nimeasutils in my install and cwui.ocx is not even installed. I think it's failing because the merge module is also trying to install oleaut which is failing silently (Vista already has the VB6 runtime files installed).

I've tried installing mesa.dll and cwui.ocx by hand and when I try to register cwui.ocx I get an error from regsvr32 of 0x80040200.

Does anyone know where I can find a full list of the dependencies for cwui.ocx?

Does NI have an updated merge module which works for Vista?

Thanks in advance for any help.

Cheers

Mike
0 Kudos
Message 1 of 5
(11,402 Views)

Hi Mike,

Thanks for posting on the NI forums.

I'm not personally aware of the full list of dependencies for the cwui.ocx, as the dependencies can change dependent on the version of Measurement Studio. Which version of Measurement Studio are you using?

There is a very useful, and free, utility that will be able to help you find out what the dependencies are, and which ones are missing from your system. It's pretty straightforward to use, and appears to support Vista. Open the utility, and load the exe/dll/ocx/sys file you wish to find dependencies for. You can find the app for download at the website below.

http://www.dependencywalker.com/

At the moment Windows Vista is not an operating system supported by NI, so an updated merge module is not something that is available at this moment in time. There are plans to support this operating system once it is released to the general public.

I hope this helps.

Rob

National Instruments | Northern California
0 Kudos
Message 2 of 5
(11,375 Views)
Mike,

I did a quick test installing cwui.ocx on Windows Vista.  Unfortunately, I cannot test with Install Shield because it is not available to me.  However, I built a Setup project with Visual Studio 2005 that simply deploys the cwui.ocx.  When I ran the installation, the cwui.ocx was properly installed without any problems.  There are a few things that may be causing the problem:

(1)  Check that all dependent merge modules are included into your installation.  The dependencies for cwui.ocx are

comcat.msm
comctl32.msm
mfc42.msm
msvcp60.msm
msvcrt.msm
nimesadll.msm
nimetautils.msm
oleaut32.msm

I know you mentioned that some of these are already present on Vista, but it can't hurt to include them, and for completeness sake, I recommend doing so.  You should be able to find these merge modules, including the NI merge modules, in the <Program Files>\Common Files\Merge Modules directory.

(2)  The second thing to check is that you have administrative priviledges.  For the installer this shouldn't matter, because MSI distributions should run with elevated priviledges automatically.  You can right click on the application and choose "Run as Administrator" to ensure that this is occuring.

If you are still experiencing problems, could you please let me know what distribution of Vista you are using (32-bit, 64-bit, ultimate, etc?)  Is this a pre-RTM version of Vista?

Regards,

Tyler Tigue
Measurement Studio
0 Kudos
Message 3 of 5
(11,369 Views)
Hello,

Thanks for the replies. I've been doing some more testing and come up with some conclusions.

A few more details. I'm using Vista RTM 32-bit Ultimate edition running in a virtual machine on VMWare Server and Installshield 12 with their InstallScript method of building installs -- not Windows Installer. Although behind the scenes Installshield is using Windows Installer to install any merge modules included.

First conclusion. You can't use the current NI merge modules to install cwui under Vista. This is because the merge modules include oleaut32. The OLE files are already installed on Vista and the merge module tries to install over the top of the files already there. This causes Vista to display an error and the install aborts. According to Microsoft & Installshield, you have to detect which operating system you're installing on and install the correct set of merge modules for that corresponding OS. Further info on which files are included in Vista is at http://msdn2.microsoft.com/en-us/vbrun/ms788708.aspx

So, you can't just include all merge modules, you have to understand what is required for each OS. Hopefully, Microsoft/Installshield will issue some new merge modules soon.

The same thing happens if you include the VB6 runtime in your install.

Second. I was running into a bug in Installshield, which has caused me some grief in the past. Sometimes, files refuse to register if they are marked as self registering in the installation. You have to run regsvr32 on them yourself as part of your install script after everything has been copied on to the users' PC. This doesn't seem to happen in Windows Installer installs as COM files are registered in a different way. Installshield extracts the info from the COM component and inserts the correct entries in the registry, instead of calling regsvr32 in the background.

I hope this helps someone else in the future!

Why are installs so complicated? !!

Cheers

Mike

Message Edited by Mike-g on 12-15-2006 04:18 AM

0 Kudos
Message 4 of 5
(11,357 Views)
Mike,

Thanks for posting this information.  I agree that something as basic as distributing software is far more complex than it appears.

I do not believe it is necessary to check for preexisting files for MSI installations, although it may be for InstallShield script installations.  Windows Installer will automatically check if a file exists on the system.  If it is a versioned file (oleaut32.lib, oleaut32.dll, etc.), then it will check the version of the existing files versus the version of the files that are to be installed.  If the version of the file that exists on the system is higher than the version that is to be installed, than nothing will happen.  The Windows Installer will skip the file to be installed and leave the higher version on the system.

If Vista has a higher version of the oleaut32 library already installed, then MSI installations that include an older oleaut32 merge module should not get installed over the Vista version.  InstallShield may not follow this set of rules.  This may be why I did not see any problems using the Visual Studio 2005 installer (which is strictly MSI based) and you did experience problems with the InstallShield installation.

The version of oleaut32.dll that exists on Windows Vista is 6.0.6000.x.  The version of oleaut32.dll that is packaged with my installation is 2.40.4275.x.  I ran the installation on Vista once again, without any problems.  I checked the version of oleaut32.dll on Vista after running my installation and the version remained at 6.0.6000.x.

As you mentioned in your last post, one workaround is to perform this check in your installation manually if it is not automatically happening.  An alternative is to use a complete MSI based installation.  I know that some versions of Install Shield offer an MSI project which is different than the standard InstallShield script installation.  I would try to build your installer using the MSI project and see if you still run into this problem.

Regards,

Tyler Tigue
Measurement Studio
0 Kudos
Message 5 of 5
(11,342 Views)