Click here to Skip to main content
15,879,535 members
Articles / Mobile Apps
Alternative
Tip/Trick

Getting Processor architecture in x86 and x64 bit platform.

Rate me:
Please Sign up or sign in to vote.
4.00/5 (1 vote)
19 Oct 2010CPOL 10.5K   2   1
I found this at Microsoft MSDN somewhere. The Code is C#, but should be easy to port to C++.[DllImport("kernel32")] private static extern IntPtr GetModuleHandle(string lpModuleName);[DllImport("kernel32")] private static extern int GetProcAddress(HANDLE hModule, string...
I found this at Microsoft MSDN somewhere. The Code is C#, but should be easy to port to C++.

[DllImport("kernel32")] private static extern IntPtr GetModuleHandle(string lpModuleName);

[DllImport("kernel32")] private static extern int GetProcAddress(HANDLE hModule, string lpProcName);

[DllImport("kernel32")] private static extern int IsWow64Process(HANDLE hProcess, out bool Wow64Process);

public static bool Is64BitOs() 
		{
			bool bReturnValue = false;

			System.Text.StringBuilder oPath = new System.Text.StringBuilder();
			oPath.Append("kernel32.dll");

			IntPtr iHandle = GetModuleHandle(oPath.ToString());
			int iAddress = GetProcAddress(iHandle, "IsWow64Process");

			if (iAddress != 0) 
			{
				bool bResult = false;
				try 
				{
					IsWow64Process(System.Diagnostics.Process.GetCurrentProcess().Handle, out bResult);
				}
				catch {}

				if (bResult) bReturnValue = true;
			}

			return bReturnValue;
		}

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Architect STZ Rechnereinsatz, Esslingen
Germany Germany
Studied Computer Science at the University of Stuttgart (specialized in Software Engineering and Computer Graphics), went through lots of Languages (Java, Modula, Prolog, Lisp, Basic, Smalltalk, VB, C#, C++ and even Assembler for the beloved 6502, 68000 and HP 9000 RISC), now grown up to a classic System- and Software-Architect Smile | :)

Comments and Discussions

 
GeneralReason for my vote of 4 Good start, but not complete: if the... Pin
Sauro Viti25-Oct-10 22:25
professionalSauro Viti25-Oct-10 22:25 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.