VC++ nimmt WINAPI nicht an, C::B schon...STRANGE
-
#include <iostream> #include <windows.h> int main(int argc, char** argv) { HWND hWnd = FindWindow(NULL, "TestProgramm"); { MessageBox(NULL, "Fenster gefunden!", "Erfolgreich!", MB_OK + MB_ICONINFORMATION); } DWORD proc_ID; GetWindowThreadProcessId(hWnd, &proc_ID); HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS,FALSE, proc_ID); if(!hProcess) { MessageBox(NULL,"Der Prozess konnte nicht geöffnet werden!","Fehler!",MB_OK + MB_ICONERROR); } else { BYTE newdata[] = {0x72,0x74 , 0x64, 0x70, 0x6F,0x65 }; DWORD newdatasize = sizeof(newdata); if(WriteProcessMemory(hProcess, (LPVOID)0x660EBB4, &newdata, newdatasize, NULL)) { MessageBox(NULL,"WriteProcessMemory erfolgreich!","Erfolgreich!",MB_OK + MB_ICONINFORMATION); } else { MessageBox(NULL,"WriteProcessMemory fehlgeschlagen!", "Fehlgeschlagen!", MB_OK + MB_ICONERROR); } CloseHandle(hProcess); } }
In Code::Blocks lässt sich das alles kompilieren...
In VC++ meckert der Compiler herumFehler 1 error C2664: 'FindWindowW': Konvertierung des Parameters 2 von 'const char [13]' in 'LPCWSTR' nicht möglich
Fehler 2 error C2664: 'MessageBoxW': Konvertierung des Parameters 2 von 'const char [18]' in 'LPCWSTR' nicht möglich
Kennt einer den Grund?
Lg Bill Gate´s son
-
Ich habe doch auch genau die selben Probleme.
Warum hast du es dann nicht mit in meinem Thread gepostet?Die Beispiele sind warscheinlich für VS C++ 6 und wir haben jetzt aber 9 (2008).
Vielleicht muss man noch was umschalten jetzt.
-
euer problem ist das ihr eure projecte auf unicode-zeichensatz laufen last.
entweder ihr stellt euer project unter eigenschaften/Zeichensatz um auf Multibyte-zeichensatz oder aber ihr müßt wenn ein LP*WSTR verlangt wird ein L vor die anführungszeichen setzen.
FindWindow(NULL, L"TestProgramm"); MessageBox(NULL,L"Der Prozess konnte nicht geöffnet werden!","Fehler!",MB_OK + MB_ICONERROR);
-
Ah sehr gut erklärt!
Danke!
-
Benutzt für String Literale doch das Makro _T("") aus tchar.h.
Das macht abhängig von den Projekteinstellungen ein Ansi oder Unicode Literal.Simon