2009-08-03 8 views

Antwort

6

GetModuleFileNameEx ist nur ein Makro. Sie könnten GetModuleFileNameExA für die ANSI-Version verwenden. Es ruft GetModuleFileNameExW auf und führt dann intern alle Konvertierungen durch.

Aber Sie sollten sicherstellen, dass der Moduldateiname keine Unicode-Zeichen enthält.

char szProcessName[MAX_PATH] = "<unknown>"; 
GetModuleFileNameExA(hProcess, NULL, szProcessName, sizeof szProcessName); 
+0

danken, aber warum ist es wirft einen Fehler: \t \t// \t \t TCHAR szProcessName [MAX_PATH] = TEXT (""); \t \t \t \t char * szProcessName = ""; \t \t \t \t GetModuleFileNameExA (hProzess, NULL, szProcessName, MAX_PATH); printf ("% s", szProcessName); – user145586

+0

Es könnte einfacher sein, herauszufinden, was Sie sagen wollen, wenn Sie Ihren ursprünglichen Beitrag bearbeiten ... – Goz

+0

szProcessName sollte groß genug sein, um MAX_PATH-Zeichen zu behalten. –

0

Beachten Sie, dass, wenn Sie nicht eine Unicode-Anwendung erstellen (dh, _UNICODE nicht definiert ist), dann TCHAR == char

Verwandte Themen