Visual C++ 2010 Express 64bit kompilieren?/Speicheradresse Wert zuweisen?



  • Hallo liebe Community. 🙂

    Ich möchte meinen Code in Visual C++ 2010 Express in 64bit kompilieren. Wie stelle ich das am besten an? Google hat leider nicht viel geholfen. Ich hoffe ihr könnt es mir erklären. 😕

    Ich arbeite nämlich gerade an einem Problem. Ich möchte das mein Programm einer bestimmten Speicheradresse einen bestimmten Wert zuweist. Hier gibt aber mein Programm einen Fehler aus das es den Wert nicht auf die Speicheradresse schreiben kann. Und ich denke das es daran liegt dass das Programm nicht in 64bit kompiliert wurde. Oder liege ich hier total daneben? 😃

    #include <iostream>
    #include <Windows.h>
    #include <conio.h>
    
    using namespace std;
    
    int main(){
    	int newValue = 500;
    
    	HWND hWnd = FindWindow(0, "Rechner");
    
    	if (hWnd == 0){
    		cerr << "Cannot find window." << endl;
    		getch();
    	}
    	else{
    		DWORD pId;
    		GetWindowThreadProcessId(hWnd, &pId);
    		HANDLE hProc = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pId);
    
    		if (!hProc){
    			cerr << "Cannot open process." << endl;
    			getch();
    		}
    		else{
    			int isSuccessful = WriteProcessMemory(hProc, (LPVOID)0x3B3C3042CC, &newValue, (DWORD)sizeof(newValue), NULL);
    
    			if (isSuccessful > 0){
    				clog << "Process memory written." << endl;
    				getch();
    			}
    			else{
    				cerr << "Cannot write process memory." << endl;
    				getch();
    			}
    
    			CloseHandle(hProc);
    		}
    	}
    }
    


  • Ja, die Adresse passt ganz einfach nicht in einen 32Bit Pointer. Deshalb musst du dein Programm auch als 64Bit kompilieren.
    Zweites Ergebnis auf Google: MSDN - How to: Configure Visual C++ Projects to Target 64-Bit Platform.

    Wobei ich bezweifle dass eine Adresse die du hardcodest auch funktioniert, ich würde eher davon ausgehen dass sie nicht fix ist.



  • "5. In the Type or select the new platform drop-down list, select a 64-bit platform."

    Das habe ich ja schon versucht aber bei mir gibt es einfach die Auswahlmöglichkeit nicht. 😞 Da steht einfach garnichts wenn ich auf die Drop-Down Liste klicke. 😕



  • Ups mein Fehler, ist wohl bei der Express Version etwas aufwändiger: Stackoverflow - How to compile a 64-bit application using Visual C++ 2010 Express.



  • Das SDK hab ich ja auch schon installiert. 😃 Nur steht dort immer noch nichts. 😕 So schwer kann das doch nicht sein. :p



  • Besorge dir die VS2013 Community Edition.



  • Das könnte schwierig werden auf einem Windows 7 OS. 😞



  • Enitin schrieb:

    Das könnte schwierig werden auf einem Windows 7 OS. 😞

    Wie kommst Du darauf?



  • Weil bei mir angezeigt wird das ich es auf diesem Betriebssystem nicht intallieren kann. 😕 Langsam aber sicher häufen sich die Fehler. 😃


Log in to reply