Fehler beim kompilieren!
-
Hallo,
ich versuche schon seid ein paar stunden den Code hier zum laufen
zu bringen, aber komischerweise bekomm ich immer einen Error!Hier mal der Code:
#include <stdio.h> #include <windows.h> #include <iostream> using namespace std; int crypt(char *str) { int length; char chr; int ord; for(length=0; length<strlen(str); length++) { ord = (int)str[length]; ord = ord + 1; chr = (char)ord; str[length] = chr; } return 0; } int decrypt(char *str) { int length; char chr; int ord; for(length=0; length<strlen(str); length++) { ord = (int)str[length]; ord = ord - 1; chr = (char)ord; str[length] = chr; } return 0; } int main(int argc, char *argv[]) { char func_crypted[] = "NfttbhfCpyB"; HMODULE dll; FARPROC MyMessageBox; decrypt(func_crypted); dll = LoadLibrary("user32.dll"); MyMessageBox = GetProcAddress(dll, func_crypted); MyMessageBox(0, "Im working", "YEAAAH", MB_OK); system("PAUSE"); return 0; }
Ich bekomme den Error:
error C2197: 'int (__stdcall *)(void)' : too many actual parametersDer fehler soll hier liegen:
MyMessageBox(0, "Im working", "YEAAAH", MB_OK);Hat evtl. jemand eine Idee was das sein könnte ?
Habe schon Gegooglet aber nix brauchbares gefundenGruß,
i-Rock// Denglish topic "gefixt" :p
-
Woher soll er jetzt wissen, wieviel Parameter MyMessageBox hat?
-
Wie CoderOutOfHell schon angedeutet hat fehlt dir die Konvertierung in einen Funktionszeiger welcher die gleiche Signatur hat wie MessageBoxA oder W je nach dem welche version du laden möchtest.
// MessageBox Funktionszeigertyp typedef int WINAPI (*MyMessageBox_t)(HWND,LPCSTR,LPCSTR,UINT); int main(int argc, char *argv[]) { char func_crypted[] = "NfttbhfCpyB"; HMODULE dll; MyMessageBox_t MyMessageBox = 0; decrypt(func_crypted); dll = LoadLibrary("user32.dll"); MyMessageBox = reinterpret_cast<MyMessageBox_t>(GetProcAddress(dll, func_crypted)); if(MyMessageBox) MyMessageBox(0, "Im working", "YEAAAH", MB_OK); system("PAUSE"); return 0; }