|
Conflict between chartdir50.dll and chartdir41.dll? |
Posted by John Couture on Jan-29-2011 00:33 |
|
Hi.
We use chartdir50.dll in our software. A customer of ours has another application (not ours) that uses chardir41.dll. They said that after they installed our application, the other application is reporting a problem with chartdir41.dll not being registered.
Is there something we should be doing to ensure we don't break these other apps that use an older version of the chardir DLL?
Any info you can provide will be appreciated.
John Couture. |
Re: Conflict between chartdir50.dll and chartdir41.dll? |
Posted by Peter Kwan on Jan-29-2011 13:23 |
|
Hi John,
"chartdir50.dll" is only used in "ChartDirector for C++" and "ChartDirector for ASP/COM/VB". Are you using "ChartDirector for ASP/COM/VB"?
In Microsoft COM technology, there can only be one version of the DLL registered in the system. When you install your application, you probably register the ChartDirector Ver 5 DLLs to the system. In this case, all applications that use "ChartDirector.API" will automatically use the ChartDirector Ver 5 DLLs. As ChartDirector Ver 5 is backwards compatible with ChartDirector Ver 4, so if an application is originally using ChartDirector Ver 4, it should continue to work when ChartDirector Ver 5 is installed.
I am not too sure exactly what your customer is seeing when he said "chartdir41.dll not be registered". Does he mean the application runs normally but with the "unregistered" yellow banner?
If your software is using the setLicenseCode method for registration (instead of using the "chartdir.lic" file), but your customer's older software is not using setLicenseCode (it may assume there is a "chartdir.lic"), your customer's software may become unregistered. as your ChartDirector Ver 5 does not have "chartdir.lic". Another possibility is that your customer's software is using setLicenseCode, but it is using a key that is only valid up to ChartDirector Ver 4, in which case the software will become unregistered.
To solve the problem, there are several methods:
(a) If your application is an EXE (such as a VB6 application), it is actually possible to use a local COM component without registration. In this way, you application will not affect other applications using different versions of the same component, and vice versa. See Microsoft documentation:
http://msdn.microsoft.com/en-us/library/ms973913.aspx
The disadvantage of this method is that it requires Windows XP or above (does not work on Windows 98/ME/NT/2000),
I have tried this method myself and it works with ChartDirector. If you would like to use this method, I can send my test project with the MANIFEST files to you.
(b) If your customer's existing application is using a "chartdir.lic" license file, try to copy that file to the same directory as "chartdir50.dll". It may work (if the license key in "chartdir.lic" is also valid for ChartDirector Ver 5).
(c) You may also put your license key in a "chartdir.lic" and put the file in the same directory as "chartdir50.dll".
Hope this can help.
Regards
Peter Kwan |
Re: Conflict between chartdir50.dll and chartdir41.dll? |
Posted by John Couture on Jan-31-2011 23:07 |
|
Peter.
Thank you very much for your reply. We are using CharDirector for ASP/COM/VB and the .setLicenseCode method for registration. The other software is using a .lic file and this looks like the cause of the problem.
I will review the info on the MSDN link you provided. I would also very much appreciate the test project with the MANIFEST files you mentioned. I've put my contact info below.
Please feel free to email or call me.
Thank you again for the information.
John Couture
800-704-9009 x3305
jcouture [at] tigerpawsoftware [dot] com |
Re: Conflict between chartdir50.dll and chartdir41.dll? |
Posted by Peter Kwan on Feb-01-2011 01:45 |
|
Hi John,
I have just uploaded an example to our web site. You may download it from:
http://www.advsofteng.com/regfree.zip
The "vbHelloWorld4.exe" is just the EXE compiled using the vbHelloWorld sample code included in the ChartDirector distribution. We added two MANIFEST files, and apparently the vbHelloWorld4.exe can be run on a machine even without registering the ChartDirector DLLs.
Hope this can help.
Regards
Peter Kwan |
Re: Conflict between chartdir50.dll and chartdir41.dll? |
Posted by John Couture on Feb-01-2011 01:51 |
|
Thanks Peter. |
|