вторник, 19 июля 2011 г.

What can I use instead of rundll32.exe to run 64-bit DLL?

There are two versions of the rundll32.exe program in 64-bit versions of Windows-family operating systems:
64-bit version: %WinDir% \System32\rundll32.exe
32-bit version: %WinDir% \SysWOW64\rundll32.exe
A 64-bit application can use the 64-bit version of rundll32.exe located in %WinDir% \System32\ to load 64-bit DLL. But 32-bit programs addressing %WinDir%\System32\ are redirected into %WinDir% \SysWOW64\ for compatibility purposes and therefore they will use the 32-bit version of rundll32.exe.
If you need to address the %WinDir%\System32 folder from a 32-bit program launched in a 64-bit Windows, you may use the virtual directory %windir%\Sysnative (redirection is not used for it) or use the Wow64DisableWow64FsRedirection function to disable the redirection mechanism.

References

  1. Discussion at stackoverflow.com. rundll32.exe equivalent for 64-bit DLLs.
  2. MSDN Library. File System Redirector.

Комментариев нет:

Отправить комментарий