Indigo Rose Software
  #1  
Old 08-16-2007
cdundee cdundee is offline
Forum Member
 
Join Date: Dec 2005
Posts: 43
Private DLL

Hi Brett,
I have a question about private DLL in SUFWI.

There is an option in SUFWI to register a DLL as private to an application. Does the installer do anything special to make a DLL private to an application or does it merely copy the DLL to the application folder and register as a non-shared component? How does the installer make a DLL private?

I always thought that a DLL can be private by simply placing it in the application folder and registering it as a non-shared DLL.

Can you please take some time and respond as soon as possible.

Thanks.
Reply With Quote
  #2  
Old 08-16-2007
Brett's Avatar
Brett Brett is offline
Indigo Rose Staff Member
 
Join Date: Jan 2000
Posts: 2,001
Is the DLL that you are using:

1) A COM (ActiveX) DLL?
2) A .NET DLL?
3) A normal, win32 DLL?

In general, yes, putting a DLL in the same folder as the executable will make the executable use it from that location. However, if the DLL requires COM registration, you probably want to install it to the system folder and keep a DLL shared count on it.
Reply With Quote
  #3  
Old 08-16-2007
cdundee cdundee is offline
Forum Member
 
Join Date: Dec 2005
Posts: 43
It is a COM (ActiveX) DLL.

In SUFWI, I added this DLL file. There are two choices available to me:
1. If I want to make the DLL a shared one, I will have to install it in system32 folder and register as a shared DLL. To accomplish this, In SUFWI, I specify the destination directory as system32, I select the self register radio button and check the shared DLL reference count checkbox on the component properties.

2. If I want to make the DLL private to my application, I will have to install it in the application folder and register as a non-shared component. To accomplish this, In SUFWI, I specify the destination directory as my application folder, I select the self register radio button and uncheck the shared DLL reference count checkbox on the component properties.

Option 1 works for me but Option 2 does not seem to work for me when I install two different applications (using two different setups) that use the same DLL as private to them. When I uninstall one application the DLL gets unregistered and breaks the other application.

If I use option 2 or want to make a DLL private, in SUFWI do I also have to select private on the Registration Type on the Assembly Settings page?

Thanks.
Reply With Quote
  #4  
Old 08-16-2007
Brett's Avatar
Brett Brett is offline
Indigo Rose Staff Member
 
Join Date: Jan 2000
Posts: 2,001
For option 2, what you may want to do is to make the DLL an isolated component for the executable. To do this:

1. Install the DLL to the system folder
2. Mark it as self-registered
3. Mark its component as shared
4. Go to the file properties for the executable that uses the DLL
5. Go to the Component tab and click Edit Component
6. Go to the Advanced tab
7. Add the dll's component to the Isolated Components list

I am not sure if that is what you are after, but it is worth a try...
Reply With Quote
  #5  
Old 08-17-2007
Lorne's Avatar
Lorne Lorne is offline
Indigo Rose Staff Member
 
Join Date: Feb 2001
Location: Indigo Rose Software
Posts: 2,588
Quote:
Originally Posted by cdundee View Post
2. If I want to make the DLL private to my application, I will have to install it in the application folder and register as a non-shared component. To accomplish this, In SUFWI, I specify the destination directory as my application folder, I select the self register radio button and uncheck the shared DLL reference count checkbox on the component properties.
You could try using .Local.

See:
http://blogs.msdn.com/junfeng/archiv...24/517221.aspx
and:
http://msdn.microsoft.com/library/de...edirection.asp

For example, if you create an empty file in the same folder, with the same name as your executable plus a ".local" suffix (e.g. appname.exe.local), that will make your application search its local directory for its libraries (unless there is a manifest file present, which will override the .local).
__________________
--[[ Indigo Rose Software Developer ]]
Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
MZ-2nd DLL mz241508 AutoPlay Media Studio 6.0 12 01-14-2009 06:18 AM
Free ActiveX (dll file ) with 1000+ properties & functions CrazyFrog AutoPlay Media Studio 6.0 13 10-14-2007 09:23 AM
Official Release Of SetMask DLL Worm AutoPlay Media Studio 5.0 23 01-24-2005 10:00 PM
Calling a DLL matrix Setup Factory 6.0 1 12-26-2001 08:47 PM
SUF6 - Call DLL action Romahe Setup Factory 5.0 1 11-27-2001 07:02 AM


All times are GMT -6. The time now is 11:29 PM.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
Copyright © 2000 - 2009 Indigo Rose Corporation. All rights reserved.
Indigo Rose Software