by rudolfo » Sun Jan 12, 2014 4:57 am
The C# compiler should usually produce code for the CLR (common language runtime) which follows the good old Java rule: Compile once, run everywhere. Depending on your settings in the IDE the program maybe linked against a 32bit launcher stub or against a 64bit launcher stub and is distributed as exe.
Instead of distributing a truly device independent format as Java does with its .jar, .war and .ear files Microsoft tried to be clever and use .exe with the typical PE header for distributing C# applications. In other words they play the Nanny for the user and tell them: "I know what you need you need a 64bit executable!" instead of letting the user decide on its own in which environment he or she wants to run a program.
The PE header contains machine code and requires a certain CPU architecture. If the PE Header is compiled to run on 32bit a 64bit system is still able to run this program as it can launch a 32 bit subsystem for such purposes.
So check your IDE and see how you can convince it to compile 32 bit applications. Or even better say good bye to Microsoft nonsense and use a truely device independent languages as Java or Python.
OpenOffice 3.1.1 (2.4.3 until October 2009) and LibreOffice 3.3.2 on Windows 2000, AOO 3.4.1 on Windows 7
There are several macro languages in OOo, but none of them is called Visual Basic or VB(A)! Please call it OOo Basic, Star Basic or simply Basic.