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
- :
- CallDllFx on 64-bit dont work
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
‎Feb 26, 2009
04:46 AM
CallDllFx on 64-bit dont work
Hi,
i am building a installer on a 32-bit OS for 64-bit OS. i use the following the installscript:
i am using the script for 32-bit installer and it works, but in my 64-bit installer it dont work! It returns: "-1".
Is CallDllFx not working on 64-bit systems ?
LaunchAppAndWait i can not use, because i am calling rundll32.exe which gives me not the return value from the called function back...
thanks
i am building a installer on a 32-bit OS for 64-bit OS. i use the following the installscript:
nExitCode = CallDLLFx(szDllFilePath, "ISHelper", nPathBuffer, szArgumentString);
i am using the script for 32-bit installer and it works, but in my 64-bit installer it dont work! It returns: "-1".
Is CallDllFx not working on 64-bit systems ?
LaunchAppAndWait i can not use, because i am calling rundll32.exe which gives me not the return value from the called function back...
thanks
(4) Replies
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Feb 26, 2009
10:46 AM
With LaunchAppAndWait (and similar), you can use the nLaunchResult field of LAAW_PARAMETERS to capture the return value.
(As mentioned in the CallDllFx help topic, you might also consider "upgrading" to UseDLL and the like.)
(As mentioned in the CallDllFx help topic, you might also consider "upgrading" to UseDLL and the like.)
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Feb 26, 2009
11:41 AM
hi,
i have tried it about LAAW_PARAMETERS.nLaunchResult:
rundll32.exe gives back "0", irrespective of the function has been found or not!
so i can not use rundll32.exe, is there another solution to get back the return code of the function which should called about rundll32.exe ?
thanks
i have tried it about LAAW_PARAMETERS.nLaunchResult:
nExitCode = LaunchAppAndWait("rundll32.exe", szTmp, LAAW_OPTION_WAIT);
NumToStr(szExitCode, LAAW_PARAMETERS.nLaunchResult);
MessageBox("Launched LaunchAppAndWait: ExitCode: " + szExitCode + ".", SEVERE);
rundll32.exe gives back "0", irrespective of the function has been found or not!
so i can not use rundll32.exe, is there another solution to get back the return code of the function which should called about rundll32.exe ?
thanks
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Feb 27, 2009
05:19 PM
The InstallScript engine is built as 32-bit code, so it is not possible to load a 64-bit DLL from InstallScript. The simplest solution would be to create a wrapper executable that mimics the functionality of rundll32 (i.e., LoadLibrary to load the DLL, GetProcAddress to get the address of the DLL entry point to call) and then return the value with the executable that is provided by the DLL. The executable can then be launched with LaunchAppAndWait and the result obtained from LAAW_PARAMETERS.nLaunchResult (after the EXE completes).
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Mar 06, 2009
04:30 AM
Hi,
i tried it about the UseDLL function but it dont works. Every time it fails because my dll, which i have added to the support files under language independent, will not unpack to the temp folder...
what can be the reason ?
thanks
i tried it about the UseDLL function but it dont works. Every time it fails because my dll, which i have added to the support files under language independent, will not unpack to the temp folder...
what can be the reason ?
thanks