Home |
Search |
Today's Posts |
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
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 |
#2
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
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 |
#3
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
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 |
#4
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
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 |
#5
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
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 |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
Dynamic Link to Quickbooks | Excel Worksheet Functions | |||
Dynamic link to website | Excel Worksheet Functions | |||
dynamic link | Excel Discussion (Misc queries) | |||
dynamic link | Links and Linking in Excel | |||
Dynamic Link to SQL | Excel Programming |