GetProcessImageFileName und LPTSTR

Kann mir jemand sagen-wenn ich es richtig ?

LPTSTR nameProc = "";
...
GetProcessImageFileName( hProcess, nameProc, 50 );

printf("name process : %s\n", nameProc);

Ich bin nicht mit der win32-Arten,
das 2. argument der GetProcessImageFileName erfordert eine LPTSTR typedef und der Dritte nimmt eine DWORD variable.
wenn nicht die Methode vielleicht bin ich nicht drucken der Wert von nameProc der richtige Weg ? (es gibt eine leere Zeichenfolge, die durch die Art und Weise)

vielen Dank im Voraus.

(bitte versuchen zu vermeiden, was mich zu einigen win32-api-Dokumente, ich habe keine Absicht, um mehr darüber zu erfahren, brauche ich nur auf die Spur, die Verwendung von Speicher von einem Prozess, daher ich nicht nicht mehr viel mit win-Typen)

BEARBEITEN (aktualisiert code):

void printMemoryInfo( DWORD processID ) {

    HANDLE hProcess;
    TCHAR nameProc[MAX_PATH];

    printf("\nProcess ID: %u\n", processID);

    hProcess = OpenProcess( PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, processID );

    if (hProcess == NULL) return;

    if (GetProcessImageFileName( hProcess, nameProc, sizeof(nameProc)/sizeof(*nameProc) )==0)
        printf("error\n");

    else printf("%s\n", nameProc);
}

int main (void) {

    DWORD aProcesses[1024], cbNeeded, cProcesses;
    unsigned int i;

    if (!EnumProcesses( aProcesses, sizeof(aProcesses), &cbNeeded )) {

        return 1;
    }

    cProcesses = cbNeeded/sizeof(DWORD);

    for (i=0; i < cProcesses; i++) {

    printMemoryInfo( aProcesses[i] );
    }

    return 0;
}
InformationsquelleAutor vdegenne | 2012-02-25
Schreibe einen Kommentar