Link to home
Start Free TrialLog in
Avatar of Kerbeross
Kerbeross

asked on

Error '339': crystl32.ocx not registered

Hi experts...
I build an application using VB6 and Crystal Report 4.6. Then I make a distributable installer. The problem is: it install correctly on some machine but not with some machine. To open the login page no problem. But when click login, this error occurs:
Error '339' : Crystl32.ocx or some components not correctly registered.
I come with the details of the error tomorrow if you all want to know.
I tried to manually register the components using Regsvr32 but it cannot registered. I scan the crystl32.ocx with Dependancy Walker and it shows that one component named AppHelp.dll is missing. I don't know this dll relate to my project or not.
Please help.
Avatar of Nightman
Nightman
Flag of Australia image

What is different on the two machines?
What OS version (Win9x, Win2K, etc)?
ASKER CERTIFIED SOLUTION
Avatar of PerlChaser
PerlChaser

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of PerlChaser
PerlChaser

Oh, and there seems to be an error with the Dependency Walker saying that you need AppHelp.dll.  I do not even have that on my development machine, and Crystal Reports runs just fine.  Even so, Dependency Walker insists that I need it.
Avatar of Kerbeross

ASKER

I installed CR8.5 and hope that when I create the installer, the missing file will automatically be there. But it seems not.
The OS is Win98 and also Win2K.
For your information, I  create the installer using Visual Studio Installer, not with the Package and Deployment Wzard because the size of the output file.
hi all experts,
pls correct me if i m wrong.

i know that if i package my application in a Win98 machine, and i include .ocx file, like crystl32.ocx, then i distribute it to client with win98, then .ocx file will be copied to c:\windows\system. (assume c: as windows drive), but same setup file when distribute to OS like win2000, winXP (i m not so sure about win NT), the .ocx will be copied to \windows\system too, but it doesn't work when we launch the program and it will display error message u mentioned above. its because win 2000, win XP read .ocx from \windows\system32, so the OS can't find the .ocx file required.

to fix this problem, actually u have 2 choices (for wat i know):
1. package ur application in same OS that u want to distribute them on (e.g package in win98 if u wan to distribute them in win98, in winXP if u want to distribute them in win XP)

2. if u dun want to do so, if u package ur application in win 98 but distribute them in winXP, then u hav to manually register for the crystl32.ocx in win XP:
go to start->run type c:\windows\system32\regsvr32 <path of crystl32.ocx> then enter

it should be no problem to launch the program which related to report generating, since u said that u can't register, wat error message u get?

rgds,
daniel
daniel,
My OS is Win2K. the target OS is Win2K and Win98. Both OS (not all PC) have the same error message. I have tried to manually register the .ocx but failed. The .ocx is there but i'm afraid that the dependency file is missing (which we need before registering some related .ocx file) but I don't know what file.

PerlChaser,
I do check your list, but which file actually should I concentrate on (if missing) since my development environment is Visual Basic?
Kerbeross,

You should start with the Always Installed files, Msvcirt.dll, Msvcp50.dll, and All files from the MFC 6.2 object.  That may actually fix your problem if  you are not currently installing them.  If it doesn't work, you may be missing the dll for the specific component you are using, such as Crpaig80.dll in the report designer component, or Sscsdk80.dll and Pg32conv.dll if you are using charts.  It all depends on what you are doing with Crystal Reports.

I am not familiar with Crystal Reports 4.6, but I am sure that similar components use the same dll and are upgraded with new versions.

~PerlChaser~
I assume that since Kerbeross has not responded since my last comment, he has fixed the problem himself.  But there is no way to know, is there?  The points should probably be split among those who tried to help.

~PerlChaser~