We have developed a COM dll in VC++ ATL. We have developed a client application in labview using Ver1.0 of our dll. And now we have changed our dll to Ver2.0 .So now when we register ver2.0 dll, the first client application which is using ver1.0 is not working. Is this because of the dll hell versioning problem. Is there any other way we can do in labview so that we can avoid this dll hell versioning problem. Please let me know.
Thanks in Advance.
Do you find both objects with different version number when you select ActiveX class for the Automation Open VI?
They must be there and you should choose the appropriate one. If you did and it does not work... then I give up.
I supposed your dll is a COM server registered it into the Windows registry.
In that case you need a reference to call its functions. Place an Automation Open VI, connect an automation refnum constant to the input, right click on it, select ActiveX class Browse... there you should find your objects, the COM servers.
The Automation Open's output reference can be used to the Invoke Node VIs, to call dll methods.
If I remember well, the different versions are different objects in the list, the system disticts the COM versions.
It might happen that Labview does not released the previous dll... In past I had to quit LabView all the time when I recompile/register the COM dll.