ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Using dll with a dynamic link in VB (https://www.excelbanter.com/excel-programming/310276-re-using-dll-dynamic-link-vbulletin.html)

AA2e72E

Using dll with a dynamic link in VB
 
What do you mean by 'address'? Do you mean location within the filing system?
If yes, the location is irrelevant. A DLL is registered before it can be
used: if it needs to be overwritten, it must be overwritten at the same
location.

If a user wants to work with another copy in another location, the DLL must
be unregistered and registered from the new location.

If you are using "Declare Function ...", your DLL is a WIN32 DLL. The other
kind is an ActiveX DLL. Both kinds require registration.

"jul" wrote:

I have a function in a dll (built in C) that is called through Excel VBA.

Currently I declare my function in VB as follows:
Declare Function MyFunction Lib "C:\MyDll.dll" (ByVal ...) as Integer

Yet, I would like the user to be able to specify the adress of the dll in
excel (via a message box or a cell).

How can I change the link "C:\MyDll.dll" in a dynamic way in VBA.

Many thanks in advance

Julien


Jul

Using dll with a dynamic link in VB
 
In fact, I don't want the user to have access to the VB code. Yet, I want to
him to be able to choose where he wants to paste the dll on his computer (I
mean C:\\, or F:\\, ...).
So I wonder how he can from the Excel spreadsheet specify the location of
the dll (C:\\My documents...) to the VB code so that it changes the
declaration in VB (Declare Function MyFunction Lib "New adress")

thanks

"AA2e72E" wrote:

What do you mean by 'address'? Do you mean location within the filing system?
If yes, the location is irrelevant. A DLL is registered before it can be
used: if it needs to be overwritten, it must be overwritten at the same
location.

If a user wants to work with another copy in another location, the DLL must
be unregistered and registered from the new location.

If you are using "Declare Function ...", your DLL is a WIN32 DLL. The other
kind is an ActiveX DLL. Both kinds require registration.

"jul" wrote:

I have a function in a dll (built in C) that is called through Excel VBA.

Currently I declare my function in VB as follows:
Declare Function MyFunction Lib "C:\MyDll.dll" (ByVal ...) as Integer

Yet, I would like the user to be able to specify the adress of the dll in
excel (via a message box or a cell).

How can I change the link "C:\MyDll.dll" in a dynamic way in VBA.

Many thanks in advance

Julien


AA2e72E

Using dll with a dynamic link in VB
 
If you are distributing the DLL to users, it does not matter where they
locate (copy to) the DLL (if other than in SYSTEM and SYSTEM32) provided that
they register it. The VBA code is not affected.

From your point of view, you might want a standard location for the DLL:
upgrade/support is much more straightforward if the location is the same for
all users--ideally on a network volume.

"jul" wrote:

In fact, I don't want the user to have access to the VB code. Yet, I want to
him to be able to choose where he wants to paste the dll on his computer (I
mean C:\\, or F:\\, ...).
So I wonder how he can from the Excel spreadsheet specify the location of
the dll (C:\\My documents...) to the VB code so that it changes the
declaration in VB (Declare Function MyFunction Lib "New adress")

thanks

"AA2e72E" wrote:

What do you mean by 'address'? Do you mean location within the filing system?
If yes, the location is irrelevant. A DLL is registered before it can be
used: if it needs to be overwritten, it must be overwritten at the same
location.

If a user wants to work with another copy in another location, the DLL must
be unregistered and registered from the new location.

If you are using "Declare Function ...", your DLL is a WIN32 DLL. The other
kind is an ActiveX DLL. Both kinds require registration.

"jul" wrote:

I have a function in a dll (built in C) that is called through Excel VBA.

Currently I declare my function in VB as follows:
Declare Function MyFunction Lib "C:\MyDll.dll" (ByVal ...) as Integer

Yet, I would like the user to be able to specify the adress of the dll in
excel (via a message box or a cell).

How can I change the link "C:\MyDll.dll" in a dynamic way in VBA.

Many thanks in advance

Julien


Mike Mertes

Using dll with a dynamic link in VB
 
Jul,

As far as I'm aware, you don't have to specify the path to the dll at all,
so long as it's registered properly. (Or part of the path, possibly?) So, I
would suggest anyone who uses your llibraries just put them in a system
folder and register them. That way your users can forget they exist. :)

-Mike

"jul" wrote in message
...
In fact, I don't want the user to have access to the VB code. Yet, I want

to
him to be able to choose where he wants to paste the dll on his computer

(I
mean C:\\, or F:\\, ...).
So I wonder how he can from the Excel spreadsheet specify the location of
the dll (C:\\My documents...) to the VB code so that it changes the
declaration in VB (Declare Function MyFunction Lib "New adress")

thanks

"AA2e72E" wrote:

What do you mean by 'address'? Do you mean location within the filing

system?
If yes, the location is irrelevant. A DLL is registered before it can be
used: if it needs to be overwritten, it must be overwritten at the same
location.

If a user wants to work with another copy in another location, the DLL

must
be unregistered and registered from the new location.

If you are using "Declare Function ...", your DLL is a WIN32 DLL. The

other
kind is an ActiveX DLL. Both kinds require registration.

"jul" wrote:

I have a function in a dll (built in C) that is called through Excel

VBA.

Currently I declare my function in VB as follows:
Declare Function MyFunction Lib "C:\MyDll.dll" (ByVal ...) as Integer

Yet, I would like the user to be able to specify the adress of the dll

in
excel (via a message box or a cell).

How can I change the link "C:\MyDll.dll" in a dynamic way in VBA.

Many thanks in advance

Julien




Chip Pearson

Using dll with a dynamic link in VB
 
Both kinds require registration.

Standard Win32 DLLs don't require registration.


--
Cordially,
Chip Pearson
Microsoft MVP - Excel
Pearson Software Consulting, LLC
www.cpearson.com



"AA2e72E" wrote in message
...
What do you mean by 'address'? Do you mean location within the
filing system?
If yes, the location is irrelevant. A DLL is registered before
it can be
used: if it needs to be overwritten, it must be overwritten at
the same
location.

If a user wants to work with another copy in another location,
the DLL must
be unregistered and registered from the new location.

If you are using "Declare Function ...", your DLL is a WIN32
DLL. The other
kind is an ActiveX DLL. Both kinds require registration.

"jul" wrote:

I have a function in a dll (built in C) that is called through
Excel VBA.

Currently I declare my function in VB as follows:
Declare Function MyFunction Lib "C:\MyDll.dll" (ByVal ...) as
Integer

Yet, I would like the user to be able to specify the adress of
the dll in
excel (via a message box or a cell).

How can I change the link "C:\MyDll.dll" in a dynamic way in
VBA.

Many thanks in advance

Julien





All times are GMT +1. The time now is 10:13 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com