

System32 is where Windows historically placed all 32bit DLLs, and System was for the 16bit DLLs. Here are two links with all the basic info you need: Each folder is indicating where the DLLs are located for applications it they wish to use them. When developers first started working with Windows7, there were several compatibility issues where other applications where stored.Įssentially, in plain english, it means 'Windows on Windows within a 64-bit machine'. System32 really means System64 (on 64-bit Windows) In the beginning the 16/86bit files were written on, '86' Intel processors. There are actual reasons behind these changes (some would say historical significance), that are necessary for programmers to continue their work. I was taught to use Windows 3.1 and DOS, remember those days? Shortly after I worked with Macintosh computers strictly for some time, then began to sway back to Windows after buying a 圆4-bit machine. Ran into the same issue and researched this for a few minutes.
ISDONE.DLL 64 BIT INDIR CODE
(So, if you really get down to it, the real sin is static linking - this is a sin in native code and managed code - always always always dynamically link!) The only reason folks got into the bad habit of putting stuff there is because it is always in the search path, and many apps/modules use static linking. System32 and syswow64 are for Windows provided files.

some other exe is going to call your dll), you may have to put your dll dir into the search path (avoid this if at all poss!) If you have to statically load, you put your dlls in your exe dir (where they will be found).
ISDONE.DLL 64 BIT INDIR INSTALL
You do not ever install your dlls, or third party dlls into \system32\ or \syswow64. The code that uses your dlls reads the registry, then dynamically links to the dlls in that location. )Īnd then sets a registry tag : HKLM\software\ you do not assume it is c:\program files\. %ProgramFiles(x86)% to find where Program Files is. ( Note: The way you actually do this is to use the environment var: %ProgramFiles% or find a home for your bits that is NOT anywhere under c:\windows\įor example, your installer puts your dlls into: \program files\\

I should add: You should not be putting your dll's into \system32\ anyway! Modify your code, modify your installer.
