This website uses cookies. By clicking Accept, you consent to the use of cookies. Click Here to learn more about how we use cookies.
Turn on suggestions
Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.
- Revenera Community
- :
- InstallShield
- :
- InstallShield Forum
- :
- Re: Load dlls
Subscribe
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Subscribe
- Mute
- Printer Friendly Page
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Oct 03, 2011
10:46 AM
Load dlls
Hello
I have a dll on 64bits, and I need to load it, With the same dll on 32bits I used "useDLL" and it works fine, but I have read that this funcion (usedll) does not working with 64bits dlls, it is ok?
Somebody knows how can I load the dll??
thanks
I have a dll on 64bits, and I need to load it, With the same dll on 32bits I used "useDLL" and it works fine, but I have read that this funcion (usedll) does not working with 64bits dlls, it is ok?
Somebody knows how can I load the dll??
thanks
(8) Replies
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Oct 03, 2011
12:01 PM
UseDLL does not support 64-bit DLLs. If you are using an MSI-based project, you can launch 64-bit MSI DLLs as MSI custom actions. Otherwise, at this point, you will have to manually host calls to this DLL in some sort of 64-bit exe.
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Oct 03, 2011
03:37 PM
MichaelU wrote:
UseDLL does not support 64-bit DLLs. If you are using an MSI-based project, you can launch 64-bit MSI DLLs as MSI custom actions. Otherwise, at this point, you will have to manually host calls to this DLL in some sort of 64-bit exe.
To that effect, if the function call is simple enough, you could try RunDll32.exe. The major downside to this approach in a custom action is that even if the call fails, it will always appear to be successful:
http://support.microsoft.com/kb/164787/en-us
Your best bet is to write a wrapper of some sort to call it, as Michael said. Particularly if the success or failure of the call is of importance.
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Oct 04, 2011
03:57 AM
Cary R wrote:
To that effect, if the function call is simple enough, you could try RunDll32.exe. The major downside to this approach in a custom action is that even if the call fails, it will always appear to be successful:
http://support.microsoft.com/kb/164787/en-us
Your best bet is to write a wrapper of some sort to call it, as Michael said. Particularly if the success or failure of the call is of importance.
Thanks for your help
Sorry for this but, how must I create that custom? I don't created that king of custom, so I'm a little lost...
Thanks
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Oct 04, 2011
01:04 PM
Hi There,
For the custom action using RunDll32.exe, you'd just follow this KB for the 64 bit RunDll32.exe, and the path to the *.dll:
http://kb.flexerasoftware.com/selfservice/viewContent.do?externalId=Q111515
The 64 bit location is "[System64Folder]RunDll32.exe"
For writing an executable wrapper, I'd start by taking a look at samples in C++ for calling *.dll's, and just make a small console app in Visual Studio that does nothing more than call the function and interpret the return code to be 0 for Success and non-zero for a failed call to the *.dll (which will halt the installation with an error).
There should be lots of examples on MSDN for this to get you started, or even CodeProject.
For the custom action using RunDll32.exe, you'd just follow this KB for the 64 bit RunDll32.exe, and the path to the *.dll:
http://kb.flexerasoftware.com/selfservice/viewContent.do?externalId=Q111515
The 64 bit location is "[System64Folder]RunDll32.exe"
For writing an executable wrapper, I'd start by taking a look at samples in C++ for calling *.dll's, and just make a small console app in Visual Studio that does nothing more than call the function and interpret the return code to be 0 for Success and non-zero for a failed call to the *.dll (which will halt the installation with an error).
There should be lots of examples on MSDN for this to get you started, or even CodeProject.
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Oct 05, 2011
09:55 AM
Cary R wrote:
Hi There,
For the custom action using RunDll32.exe, you'd just follow this KB for the 64 bit RunDll32.exe, and the path to the *.dll:
http://kb.flexerasoftware.com/selfservice/viewContent.do?externalId=Q111515
The 64 bit location is "[System64Folder]RunDll32.exe"
For writing an executable wrapper, I'd start by taking a look at samples in C++ for calling *.dll's, and just make a small console app in Visual Studio that does nothing more than call the function and interpret the return code to be 0 for Success and non-zero for a failed call to the *.dll (which will halt the installation with an error).
There should be lots of examples on MSDN for this to get you started, or even CodeProject.
Thanks for your help, again...
The first thing I have done is to try loading with "rundll32". First I have disable WOW64FSREDIRECTION, then with a Launch run it. And the result of the launch is ok :eek: but the installation finish bad. With what I believe the custom is going to have the same result, no?
Really I tried to create a custom but in the log I see an error in the function..
With what I think I'll have to create an executable wrapper 😞
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Oct 06, 2011
05:19 AM
Hello again...
One thing, it is possible to use "LoadLybrary" to do this? How can I use it??
Thankssssss
One thing, it is possible to use "LoadLybrary" to do this? How can I use it??
Thankssssss
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Oct 06, 2011
02:47 PM
Nope; UseDLL is built on LoadLibrary and related APIs, and this is the step that will fail if a 32-bit program tries to load a 64-bit DLL (or vice versa).
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Oct 07, 2011
06:53 AM
MichaelU wrote:
Nope; UseDLL is built on LoadLibrary and related APIs, and this is the step that will fail if a 32-bit program tries to load a 64-bit DLL (or vice versa).
Thanks Michael
I hope that they change the installscript engine to 64, because we are beginning to need with urgent...