views:

263

answers:

2

I am writing an app that needs to use a third party ocx control. In my Inno Setup script I include the line:

Source: C:\aPath\aControl.ocx; DestDir: {app}; Flags: restartreplace sharedfile regserver

It looks like the control is registered, but the installed app gives me EOleSysErrors that the control isn't registered when working in Win2000. Any thoughts about what's going on here, or how to fix it?

Thanks, as always!

p.s. I'm working with admin level control. I assume this is always required when registering an ActiveX control. (Is that right?)

+3  A: 

If the problem occurs only on Windows 2000 but not on later OS versions this could be caused by missing dependencies, like DLLs or other OCX files that are not part of the standard Windows 2000 installation. Versions of the Microsoft C runtime library come to mind. To track down these kinds of problems you should use the free Dependency Walker. Copy it to the problematic machine and use it to open the OCX file, then any missing library entry points or libraries will be shown.

You can also use the tool as a debugger to run your application under. It will show a lot of information about loaded modules and similar stuff that may help pinpoint the problem.

And yes, to register an OCX you need an Administrator or Power User account.

mghie
A: 

The most likely reason I can think of for this is because you haven't installed VCRedist_x86.exe on the machine.

Goz