|
![](/i/fill.gif) |
On 3/16/2012 9:45 PM, Darren New wrote:
> This is the kind of screw you get with backwards compatibility
>
>
http://msmvps.com/blogs/jon_skeet/archive/2012/03/16/diagnosing-weird-problems-a-stack-overflow-case-study.aspx
>
>
> tl;dr - Windows fakes you out, basically giving you different files at
> the same place in the file system depending on whether you're running a
> 32-bit executable or a 64-bit executable, because people hard-code the
> path to Windows binaries into their code and expect it to still work.
>
Snort, I have seen this sort of thing happen with ones that "do" sort
of, ask the OS where things are, like they are supposed to. I moved a
program's data directory a while back and found that it had *literally*
done this, in the process of installing:
1. Install components.
2. Ask the OS where the user's profile was located.
3. Hard-code this into a location in the registry.
4. Assume it will never change.
This wouldn't have been a problem except.. it had a program function to
"consolidate installed extensions to a single place", so you didn't have
all of them scattered all over the place, when downloading them, then
installing them, and when it tried to do this it suddenly discovered
that the "consolidation" directory didn't exist any more, but was too
stupid to ask the OS if the thing had been moved.
To me, it seemed like a simple question of, "Why the hell did you bother
asking the OS in the first place, instead of letting the user pick a
location, if you are going to ignore what the OS knows about it *after*?"
Post a reply to this message
|
![](/i/fill.gif) |