Hello,
I ran into something (mostly) amusing.... I thought I would warn those who program for Windows about.
Most of us know that naming a program "setup<something>" or "install<something>" isn't a good idea unless you are really installing or setting up something. Windows is a bit "particular" about programs named that way.
There is an API function named "GetPhysicallyInstalledSystemMemory" (which BTW, is missing in FPC). I wanted to see how it would behave in different situations, for that I made a little test program "creatively" named _GetPhysicallyInstalledSystemMemory.
The results are interesting and amusing...
First, Windows sees that "install" string in the name of the program (never mind that it's buried in the name) and decides to invoke User Account Control to make sure you're ok with that thing changing something in your installation. Of course, that happens only if you are running the thing as a limited user. If you try to debug that thing using Lazarus and GDB, GDB will be very unhappy about UAC getting in the way.
And, that is not the end of the fun... that seems to happen only in 32bit. If you compile the program for 64bit, UAC seems happy to ignore it even if you are a limited user. This makes GDB happy.
Attached is the little test program for anyone who wants to have some fun with it. Rename it from "GetPhysicallyInstalled" to "GetPhysicallyInst" (or have two copies with the different names) and watch what happens when you run the thing. Try debugging them :-)
Have fun!.