Link to home
Start Free TrialLog in
Avatar of Deep Diver
Deep Diver

asked on

(OLE) Class not Registerred Error

I wrote a program that transfers datagrams via UDP components. However, when I create a distributable with InstallShield and install on a masjien without Delphi it gives the following Error:"Exception EOLESysError in module PROJECT1.EXE at 0002D1E5. Class not Registered." I have the suspicion that it is actually a .DLL file not included by IS. Does someone know wich DLL it is or have another solution?
Avatar of Deep Diver
Deep Diver

ASKER

Adjusted points to 100
deep driver,

which components are you using? Are you using the components with Delphi? I believe they are ActiveX controls so you've to install them on the other machine too. In my opinion, it's better to use F.Piettes freeware components, they are not ActiveX and don't change in every delphi version. http://www.rtfm.be/fpiette/indexuk.htm

Regards, Zif.
Didnt ask for an opinion Zifnab, asked for a solution.... :o)
It is the UDP component that came with Delphi 3 Profesional.
Deep Driver,

 then read my first sentence... If you use these components, you've to register them on the remote computer too. These are ActiveX components, so they have to be registered.

ZiF.
Didnt ask for an opinion Zifnab, asked for a solution.... :o)
It is the UDP component that came with Delphi 3 Profesional.
Deep Driver,

Here is what you've to do (see also in the help of these components) :

To install your package with support for NetManage ActiveX controls on a target system, follow the procedures below.

Step1. Search for previously installed versions.

Your installation process should search for previous versions of the controls on the target machine. The purpose of this is to verify that the software you are installing is the latest.
The NetManage and Microsoft files should be found in the Windows system directory of the target machine. For Windows 95, this directory would be %windir%\system. For Windows NT, this directory would be %windir%\system32.
You can use Microsoft’s VerFindFile() function to determine if the ActiveX files exist on the target machine.

If files are found, go on to Step 2; otherwise, go to Step 3.

Step 2. Compare file versions

If step 1 found some of the NetManage files to installed already on the target machine, you will need to check the version of both the files you are installing and the files already on the machine. We suggest you replace the files on the target machine if the files you are installing are newer.
Microsoft’s VerInstallFile() function can be used to install files based on the version information. This function checks the file version and can also install the file.

If the files on the target machine are older, go to Step 3; otherwise, go to Step 4.

Step 3. Install files

As described in Step 1, the NetManage redistributable files should be installed in the Windows system directory.

Step 4. Registration

You must register the common DLL for the ActiveX controls. After this file is registered, you may register some or all of the controls, depending on your applications requirements.
To register these controls, run the following commands from your installer.

REGSVR32 /s NMOCOD.DLL
      REGSVR32 /s FTPCT.OCX
      REGSVR32 /s HTML.OCX
      REGSVR32 /s HTTPCT.OCX
      REGSVR32 /s HTTPSR.OCX
      REGSVR32 /s INETCT.OCX
      REGSVR32 /s INETSR.OCX
      REGSVR32 /s MIME.OCX
      REGSVR32 /s NNTPCT.OCX
      REGSVR32 /s POPCT.OCX
      REGSVR32 /s SMTPCT.OCX
      REGSVR32 /s WCGI.OCX
      REGSVR32 /s WINSCK.OCX

You must run REGSVR32 on NMOCOD.DLL before you register any other OCX. You need not register more OCXs than those used in your control. For example, if you only used FTPCT.OCX, you only need to register NMOCOD.DLL and FTPCT.OCX.

Regards, Zif.
sorry for misspelling your name, I now see it's Deep Diver. Sorry.
TNX ZIFNAB!
I`m currently at work so I will only be able to test it tonight at home.
no problem zitnab :o)))))
Good morning ZifNab!....or maybe not so good....
I tried copying the DLL and winsck.ocx and registering them as you sayd, then restarted, but it stil gives the same error. Any other ideas?
which components do you use?
Only a TUDP, a normal text box and a normal press-button (Im stil experimenting to see how the component works).
mmm, very strange.... you've followed every step in previous comment? And only installed the OCX's needed for TUDP?

1. Netmanage Active X is installed on other computer?
2. Checked the versions?
3. installed the common DLL (Firstly)?
4. installed the OCX's for TUDP (Secondly)?

Strange. Well, then I'm very sorry, can't help you further... because I don't use these components... I use F. Piette's (like you already know). Can't you even look and try them? You are in a testing fase... and there are very easy to use. Zif.
Let me just get something clear....When you talk about the Netmanage ActiveX - files, you are talking about NMOCOD.DLL and WINSCK.OCX (in my case)....or did I mis-understand(no other files required)?
I searched for these 2 files in my windows registry and could not find any entry on them. Is regsvr32 suppose to make entries in it? (Maybe I can make those entries manually 2 see if the problem lies with my version of regsvr32).
Deep Diver,

 You've to copy the needed files NMOCOD.DLL and WINSCK.OCX (TUDP uses only this one? I don't know) to the system or system32 (depending on OS) directory. Then you've to use regsvr32 to put some entries in the windows registry. At least, that's what I can make up of it after reading there help...

Regards, Zif.
yes, you should see some entries in your directory... search yourself for the entries in your directory.
Zif.
I could find no entries on the target masjien`s win.-registry. I ommited the "/s" and found that it actually gets an error:
"LoadLibrary("nmocod.dll") failed.GetLast Error returns 0x00000485." Do u mind telling me where you got this info?, I would love to read about it myself. Maybe you could tell me what entries its suppose to create and I can enter them manually.....corruption of win-registry is not a problem Ive already formatted the HD and installed only win95.
Deep driver,

the information I gave can be found in the HelpFile of Netmanage. Search for NetManage (of the components!) in your registry. I searched for it in my registry and found the entries :

HKEY_CLASSES_ROOT\CLSID\{B1DC83C0-5298-11CF-AAA2-0020AF2CEE5E} ->
netmanage winsock general property page
HKEY_CLASSES_ROOT\CLSID\{B1DC83C0-5298-11CF-AAA2-0020AF2CEE5E}\InprocServer32 --> c:\winnt\system32\winsck.ocx

etc...

Zif.
To All it may concern
We have solved the problem. Zifnab, U were correct!
The reason why the regsvr32.exe did'nt work, was because it needed some other DLLs to register NMOCOD.DLL:
  NMSCKN.DLL
  NMORENU.DLL
  MSVCRT40.DLL
  OLEPRO32.DLL
If you copy these files with NMOCOD.DLL, WINSCK.OCX & REGSVR32.exe to the target computer's \windows\system directory and register NMOCOD.DLL and then WINSCK.OCX with
"REGSVR32 <Filename>" the program works.

Zifnab, can u please give a dummy answer so I can award you the points.
ASKER CERTIFIED SOLUTION
Avatar of ZifNab
ZifNab

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
No, not cinvinced Zifnab. The UDP-components is much easier for me...much less fancy stuff....

many tnx Zifnab