|
Hi,
I have created a COM dll . I'm calling another dll(C#.net dll\assembly)by adding refrence of this .net dll(from project properties) .And i able to access properly.
Now i want to make this .net dll usage should be independent of path. I mean -
I'll not add any reference or give path name in my COM dll Hence my COM dll don't know where this .net dll is located in the system. While COM Dll try to call this .net dll it'll search in whole system & load it.
Kindly please advice the C++ code for this
OR LoadLibrary() is only the method through that only we can load library dynamically(independent of path)
Please advice . Thanks in advance
modified 6-Nov-12 8:05am.
|
|
|
|
|
litu kumar wrote: it'll search in whole system
That is unlikely to be a good idea.
Have you tried to write code that searches for one dll on the system?
What if there are two different versions?
What if there are mapped network drives?
|
|
|
|
|
Hi jschell,
You are right - its not a good idea.
We don't want to give specific location of dependent Dll in COM code . Because this dependent DLL is not developed by us. This dll usually obtained after installation of a software.
we legally tied-off with this software company & code cann't be provided them(as usual company policy)
Hence if it is possible then we want to load dynamically.
I'm guessing if we do search the dependent dll in whole system while invoking ,there may be the performance issue may happen. But still the requirement is like this.
Hope you understood our requirement.
Hence if any best ways kindly please suggest.
modified 7-Nov-12 0:10am.
|
|
|
|
|
So you want to detect if it is installed.
Normal installations will create a registry entry which you can look for. You find the entry and grab the install directory. Then...
During your install.
1. Present a dialog to the user with the default product path (or the found one above.)
2. The user can modify the path.
3. When the user says ok you then verify that the correct dll is at the path specified.
4. If the dll (and correct version) is not found then put out an error message and go back to step 1.
|
|
|
|