Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 7918831
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 3, 20262026-06-03T15:38:31+00:00 2026-06-03T15:38:31+00:00

We have an old C/C++ .dll that a customer accesses via COM. We have

  • 0

We have an old C/C++ .dll that a customer accesses via COM.

We have tried to replace our old .dll with a new one written i .NET.

Customer cannot recompile their client so it is important that the old .dll can be replaced simply by COM unregister / register new (using regsvr32 / regasm).

We believe we have built the .NET .dll with the same COM interface as the old; GUID’s, names, dispid’s etc. all match. We have verified this by writing our own C++ test application and it continues to work when we unregister old .dll / register new one.

The problem is that the customer’s client failes to start.

Strangely if we leave the old .dll registered (e.g. both .dll’s are registerd) it works; The customer’s application starts and calls methods in our new .dll. But as soon as we unregister the old .dll the application fails to start again.

We have tried different ways to register the new .dll; using regasm with /codebase option, /tbl, etc.

If I inspect with OLE/COM Viewer I can see some minor differences between new and old .dll, for example the type library “name” differs. But I suppose since our own C++ test client works with either .dll the COM interfaces are enough similar?

Please, anyone has any idea? How is it possible for one C++ client to load with our new .dll while another fails? Why do both work if we leave the old .dll registered in parallel to the new one? Is there any explanation why the two C++ clients behave differently?


UPDATE:
The error message in the client says:

“failed when running: CLSIDFromProgID. Check if [myDll].dll is registered.”

Kind Regards P.T

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-03T15:38:34+00:00Added an answer on June 3, 2026 at 3:38 pm

    There are many possibilities. First, ensure you are registering the type library of your new DLL. The old one may be doing it as part of DllRegisterServer, but AFAIK, .Net DLLs do not. Register it with REGTLB.exe.

    Also check the threading models are the same in both DLLs.

    If neither of those help, I suggest you keep on until OLEVIEW says they are identical – you never know what the client is doing which is different from yours.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have an old dll that was compiled against the .NET framework and deployed.
I have a VB6 application that still references some old VB5 libraries (dll, vbr,
I have a code library written in plain old C++ (no .NET/managed code) and
I have been given an assignment to drop one of our product's dll and
We have a software that is using an old dll for generating licence key.
How is it possible that 64-bit process can load dll written in .net 1.1
I have an old .net 2005 web site that has some asp pages and
I have an old project that was build on VS 2008 .NET 2.0. The
I have to maintain an old VB 6 ActiveX DLL called by another third-party
I have old code that uses size_t which IIRC comes from cstring.h. On OS

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.