Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. General Programming
  3. COM
  4. Class not registered

Class not registered

Scheduled Pinned Locked Moved COM
c++helpsysadminwindows-adminannouncement
4 Posts 3 Posters 5 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • V Offline
    V Offline
    VVN
    wrote on last edited by
    #1

    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 .. :)

    L J 3 Replies Last reply
    0
    • V VVN

      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 .. :)

      L Offline
      L Offline
      Lost User
      wrote on last edited by
      #2

      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.

      1 Reply Last reply
      0
      • V VVN

        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 .. :)

        L Offline
        L Offline
        Lost User
        wrote on last edited by
        #3

        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.

        1 Reply Last reply
        0
        • V VVN

          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 .. :)

          J Offline
          J Offline
          Julien
          wrote on last edited by
          #4

          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.

          1 Reply Last reply
          0
          Reply
          • Reply as topic
          Log in to reply
          • Oldest to Newest
          • Newest to Oldest
          • Most Votes


          • Login

          • Don't have an account? Register

          • Login or register to search.
          • First post
            Last post
          0
          • Categories
          • Recent
          • Tags
          • Popular
          • World
          • Users
          • Groups