32 / 64 Bit
-
Hallo,
bestimmte Stellen im Coding von meinem aktuellen Projekt sind abhängig davon ob das Programm auf einer 32 oder 64 Bit Plattfor läuft.
Für Windows (und MS Visual C++) verwende ich:
#if defined (WIN32) .... #else ... #endif
Bei Linux (Intel C compiler und GCC) bin ich mir nicht sicher. Reicht es WIN32 durch LP32 zu ersetzen ?
-
-
Du kannst auch eigene defines benutzen und sie am Anfag des Kompilerens setzen, bzw. in den Projekteinstellungen festlegen.
-
Dieser Thread wurde von Moderator/in rüdiger aus dem Forum ANSI C in das Forum Compiler- und IDE-Forum verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Sowas ähnliches suche ich auch. Aber nicht Compiler-spezifiziert, sondern ich will direkt mit dem Programm herausfinden können ob das Programm auf einem 32bit oder 64bit OS läuft. Da bringt #ifdef ... logischerweise nix.
-
http://msdn.microsoft.com/en-us/library/ms684139
#include <windows.h> #include <stdio.h> typedef BOOL (WINAPI *LPFN_ISWOW64PROCESS) (HANDLE, PBOOL); LPFN_ISWOW64PROCESS fnIsWow64Process; BOOL IsWow64() { BOOL bIsWow64 = FALSE; //IsWow64Process is not available on all supported versions of Windows. //Use GetModuleHandle to get a handle to the DLL that contains the function //and GetProcAddress to get a pointer to the function if available. fnIsWow64Process = (LPFN_ISWOW64PROCESS) GetProcAddress( GetModuleHandle(TEXT("kernel32")),"IsWow64Process"); if(NULL != fnIsWow64Process) { if (!fnIsWow64Process(GetCurrentProcess(),&bIsWow64)) { //handle error } } return bIsWow64; } void main() { if(IsWow64()) printf("The process is running under WOW64.\n"); else printf("The process is not running under WOW64.\n"); }