Funktionsaufruf vor dem Kontrukter :<
-
icarus2 schrieb:
Vielleicht zeigst du uns mal etwas Code. Ich weiss nicht wie es den anderen geht, aber ich verstehe nicht wovon du redest

1. Mir geht es gut

2. Ich auch nicht
3. Die Antwort auf die Frage von Blablubiblub lautet "Nein, du liegst falsch"
-
[cpp] // Kontruktor CBase::CBase() { m_bAntiAfk = 1; m_bFullScreenAfk = 0; } // Funktion die mir meinen Wert gibt DWORD CBase::GetModuleBase(DWORD dwPid, char* szModuleName) { HANDLE hSnapShot = CreateToolhelp32Snapshot( TH32CS_SNAPMODULE, dwPid ); MODULEENTRY32 mModule32 = { sizeof( MODULEENTRY32 ) }; if( Module32First( hSnapShot, &mModule32 ) ) { BOOL meNext = Module32First( hSnapShot, &mModule32 ); while( meNext ) { if( !_stricmp( mModule32.szModule, szModuleName ) ) { CloseHandle ( hSnapShot ); return DWORD(mModule32.modBaseAddr); } meNext = Module32Next( hSnapShot, &mModule32 ); } } CloseHandle( hSnapShot ); return 0; } bool CBase::WoWIsOpen() { m_hwnd = FindWindow(NULL, "World of Warcraft"); GetWindowThreadProcessId(m_hwnd, &m_dwPid); m_phandle = OpenProcess(PROCESS_ALL_ACCESS, 0, m_dwPid); if(!m_phandle) { std::cout << "WoW not found!\n" << std::endl; return false; } else { m_dwBaseAddress = GetModuleBase(m_dwPid, "Wow.exe"); // Das Problem - Ich kann m_dwBaseAddress nur ausserhalb des Kontruktors zuweisen std::cout << "WoW found, PID: " << m_dwPid << std::endl << std::endl; #ifdef _DEBUG std::cout << "Base Address: " << m_dwBaseAddress << std::endl; #endif return true; } } [/cpp]header
[cpp] #include <Windows.h> class CBase { private: DWORD m_dwPid; DWORD m_dwBaseAddress; DWORD GetModuleBase(DWORD dwPid, char* szModuleName); bool m_bAntiAfk; bool m_bFullScreenAfk; int GetTimeHour(); int GetTimeMinute(); void AntiAfk(DWORD dwMilliseconds); HANDLE m_phandle; HWND m_hwnd; public: bool WoWIsOpen(); void ReadDungeonPointer(); CBase(); ~CBase(); }; [/cpp]
-
CBase::CBase() : m_bAntiAfk(true), m_bFullScreenAfk(false), m_dwBaseAddress(0) { }Die Ungarische Notation solltest du dir abgewöhnen.
-
m_dwBaseAddress = GetModuleBase(m_dwPid, "Wow.exe"); // Das Problem - Ich kann m_dwBaseAddress nur ausserhalb des Kontruktors zuweisenNein, du kannst das auch im Konstruktor tun. Warum sollte das nicht gehen? Und "WowIsOpen" ist ein schlechter Name für die Funktion.
P.S. Immer diese World of Warcraft-"Hacker" :p
-
Danke. Und das ist kein Hack, sondern ein kleines Tool, das mir WoW in den Vordergrund holt, sobald eine Dungeongruppe gefunden wurde. Die Wartezeiten betragen ca. 30-50min, die ich lieber sinnvoller verbringen möchte, ohne den Invite dabei zu verpassen.^^
Und damit ich nicht aus dem Spiel fliege, sendet es ab und zu mal eine Taste.
-
Ich sehe so recht keinen Grund, warum
GetModuleBase(DWORD dwPid, char* szModuleName)eine Memberfunktion der Klasse sein soll.
Definiere sie als freie Funktion und Du kannst sie direkt in der Initialisierungsliste des Konstruktors aufrufen.
-
Man *kann* auch (nicht statische) Memberfunktionen in der Initialisierungsliste aufrufen.
-
Aber belli hat Recht: eine Methode welche keine Member der Klasse benutzt, sollte als freie Funktion (oder alternativ als 'static') definiert sein.
-
Wieso unterstützt Ihr so einen Botprogrammierer? Wenn Du wissen willst wann Du eingeladen wurdest, aktivier Sound im Hintergrund, dann hörst Du wenn der Dungeonfinder aufpoppt.
Das hier ist nur nen weiterer Bot der von Warden eh erkannt wird und dein Acc dann hoffentlich bald gebannt.
-
Th69 schrieb:
Aber belli hat Recht: eine Methode welche keine Member der Klasse benutzt, sollte als freie Funktion (oder alternativ als 'static') definiert sein.
Ja, natürlich.
Ich hab auch nichts anderes behauptet.
-
Scorcher24 schrieb:
Wieso unterstützt Ihr so einen Botprogrammierer? Wenn Du wissen willst wann Du eingeladen wurdest, aktivier Sound im Hintergrund, dann hörst Du wenn der Dungeonfinder aufpoppt.
Das hier ist nur nen weiterer Bot der von Warden eh erkannt wird und dein Acc dann hoffentlich bald gebannt.Dann brauch es dich ja nicht zu stören, also mecker nicht.
-
Gut, dann werde ich die Funktion aus der Klasse werfen.
Scorcher24 schrieb:
Wieso unterstützt Ihr so einen Botprogrammierer? Wenn Du wissen willst wann Du eingeladen wurdest, aktivier Sound im Hintergrund, dann hörst Du wenn der Dungeonfinder aufpoppt.
Das hier ist nur nen weiterer Bot der von Warden eh erkannt wird und dein Acc dann hoffentlich bald gebannt.Der Sound ist mehr als nervig wenn man derweil Musik hören will oder auf YouTube surft. Ausserdem betrachte ich jedes Programm auch als eine Übung, egal was es macht.