Class not registered
-
I developed a system that is on the market more than one year and the last version was updated on September/2000. The system is developed in Visual C++ (SP4) using client/server technology throw DCOM servers (with ATL). Everything was correct until this week, when five costumers had the following problem: "Class not registered" (HRESULT = 0x80040154). We have about ten servers that are registered during the system's installation, but just one is having this problem. In other machines everything is correct. In these costumers, analyzing the registry, I just found two entries with the name of the server (the server's name is MTEFGERADORS with just one interface IMTEFGERADOR): [HKEY_LOCAL_MACHINE\Software\CLASSES\CLSID\{B54FCA20-3470-11D3-84DE-0080AD19F504} \InProcServer32] @="C:\\WKRADAR\\PGMS\\FISCAL\\MTEFGERADORSPS.DLL" "ThreadingModel"="Both" [HKEY_LOCAL_MACHINE\Software\CLASSES\Interface\{B54FCA20-3470-11D3-84DE- 0080AD19F504}] @="IMTEFGerador" In fact, there are many other keys missing. The first effort was to registry manually, using the commands "regsvr32 MTEFGERADORS.dll" and "MTEFGERADORS.exe /RegServer", but the registry didn't changed. The second effort was to reinstall DCOM with no success. The third effort was to format the machine and just install Windows and the system. But it didn't work either. It happens on Windows 95, 98 e NT. Would appreciate any help .. :)
-
I developed a system that is on the market more than one year and the last version was updated on September/2000. The system is developed in Visual C++ (SP4) using client/server technology throw DCOM servers (with ATL). Everything was correct until this week, when five costumers had the following problem: "Class not registered" (HRESULT = 0x80040154). We have about ten servers that are registered during the system's installation, but just one is having this problem. In other machines everything is correct. In these costumers, analyzing the registry, I just found two entries with the name of the server (the server's name is MTEFGERADORS with just one interface IMTEFGERADOR): [HKEY_LOCAL_MACHINE\Software\CLASSES\CLSID\{B54FCA20-3470-11D3-84DE-0080AD19F504} \InProcServer32] @="C:\\WKRADAR\\PGMS\\FISCAL\\MTEFGERADORSPS.DLL" "ThreadingModel"="Both" [HKEY_LOCAL_MACHINE\Software\CLASSES\Interface\{B54FCA20-3470-11D3-84DE- 0080AD19F504}] @="IMTEFGerador" In fact, there are many other keys missing. The first effort was to registry manually, using the commands "regsvr32 MTEFGERADORS.dll" and "MTEFGERADORS.exe /RegServer", but the registry didn't changed. The second effort was to reinstall DCOM with no success. The third effort was to format the machine and just install Windows and the system. But it didn't work either. It happens on Windows 95, 98 e NT. Would appreciate any help .. :)
1)check if you make every component version in the same project or diferents projects. 2) Unregister the component in the client a server ( write: regsvr32 "Mydll.dll" /u ) 3) Make the ThreadingModel free (for concurrency). 4) register the project-dll 4) Check the project id in the server and client. 5) try again.
-
I developed a system that is on the market more than one year and the last version was updated on September/2000. The system is developed in Visual C++ (SP4) using client/server technology throw DCOM servers (with ATL). Everything was correct until this week, when five costumers had the following problem: "Class not registered" (HRESULT = 0x80040154). We have about ten servers that are registered during the system's installation, but just one is having this problem. In other machines everything is correct. In these costumers, analyzing the registry, I just found two entries with the name of the server (the server's name is MTEFGERADORS with just one interface IMTEFGERADOR): [HKEY_LOCAL_MACHINE\Software\CLASSES\CLSID\{B54FCA20-3470-11D3-84DE-0080AD19F504} \InProcServer32] @="C:\\WKRADAR\\PGMS\\FISCAL\\MTEFGERADORSPS.DLL" "ThreadingModel"="Both" [HKEY_LOCAL_MACHINE\Software\CLASSES\Interface\{B54FCA20-3470-11D3-84DE- 0080AD19F504}] @="IMTEFGerador" In fact, there are many other keys missing. The first effort was to registry manually, using the commands "regsvr32 MTEFGERADORS.dll" and "MTEFGERADORS.exe /RegServer", but the registry didn't changed. The second effort was to reinstall DCOM with no success. The third effort was to format the machine and just install Windows and the system. But it didn't work either. It happens on Windows 95, 98 e NT. Would appreciate any help .. :)
1)check if you make every component version in the same project or diferents projects. 2) Unregister the component in the client a server ( write: regsvr32 "Mydll.dll" /u ) 3) Make the ThreadingModel free (for concurrency). 4) register the project-dll 4) Check the project id in the server and client. 5) try again.
-
I developed a system that is on the market more than one year and the last version was updated on September/2000. The system is developed in Visual C++ (SP4) using client/server technology throw DCOM servers (with ATL). Everything was correct until this week, when five costumers had the following problem: "Class not registered" (HRESULT = 0x80040154). We have about ten servers that are registered during the system's installation, but just one is having this problem. In other machines everything is correct. In these costumers, analyzing the registry, I just found two entries with the name of the server (the server's name is MTEFGERADORS with just one interface IMTEFGERADOR): [HKEY_LOCAL_MACHINE\Software\CLASSES\CLSID\{B54FCA20-3470-11D3-84DE-0080AD19F504} \InProcServer32] @="C:\\WKRADAR\\PGMS\\FISCAL\\MTEFGERADORSPS.DLL" "ThreadingModel"="Both" [HKEY_LOCAL_MACHINE\Software\CLASSES\Interface\{B54FCA20-3470-11D3-84DE- 0080AD19F504}] @="IMTEFGerador" In fact, there are many other keys missing. The first effort was to registry manually, using the commands "regsvr32 MTEFGERADORS.dll" and "MTEFGERADORS.exe /RegServer", but the registry didn't changed. The second effort was to reinstall DCOM with no success. The third effort was to format the machine and just install Windows and the system. But it didn't work either. It happens on Windows 95, 98 e NT. Would appreciate any help .. :)
I have seen a similar problem before. In our case what had happened was that the .rgs file in the project was incorrect! That is it had different ID's to the actual interface! So when we registered it the registry entries were wrong. So, I suggest you check that the .rgs iids all match what the client is actually requesting. If there is not a match then I suggest you create a NEW project an add all your code to it, then re-compile the client(s). If this is not an option then you need to manually make sure that your server code has the iids that the client is asking for. (Find in files *.* all matchs for the previous iids, just to make sure). BTW: Really really make sure that the registry is clean, this is very important. So you should : Make sure that it is not running (or for DLL's not loaded). Deregister it. Then search the registry for old stuff (CLSID and Appid) Let us know how you go.