Guest Sammy Postado Agosto 27, 2008 Denunciar Share Postado Agosto 27, 2008 Qual o problema no codigo abaixo?DWORD GPA = (DWORD)GetProcAddress(LoadLibrary("GDI32.DLL"), "GetPixel")+5; _declspec(naked) BOOL GetPixelX(HDC hdc, int nXPos, int nYPos){ _asm { mov edi, edi push ebp mov ebp, esp jmp[GPA] }} COLORREF WINAPI GetHPPixelColor(){ COLORREF NullColor = RGB(255, 255, 255); if (cHandle == NULL) { // Get window handle on MapleStory cHandle = FindWindow("MapleStoryClass", NULL); } if ((cHandle != NULL) && (DLLFunc != NULL)) { try { HDC MapleHDC = ::GetDC(cHandle); COLORREF color = ::GetPixelX(MapleHDC, HP.x, HP.y); return color; } catch(...) { MessageBox(0, "Error code: 0x00001", "Error!", MB_ICONSTOP | MB_OK); return NullColor; } } else { return NullColor; }}e eu to usandoCOLORREF HPActualColor = GetHPPixelColor();+ sempre da o erro "Debug Error - The value of ESP was not properly saved across a function call" eu ainda n sei C++ direito então me ajuda ae. vlw. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest Visitante Postado Agosto 27, 2008 Denunciar Share Postado Agosto 27, 2008 "Debug Error - The value of ESP was not properly saved across a function call"ESP se eu não me engano é o stack pointer na IA32. O que está acontecendo é que o valor não está sendo armazenado entre uma chamada de função e outra. == Problemas na pilha. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Guest Sammy
Qual o problema no codigo abaixo?
DWORD GPA = (DWORD)GetProcAddress(LoadLibrary("GDI32.DLL"), "GetPixel")+5;
_declspec(naked) BOOL GetPixelX(HDC hdc, int nXPos, int nYPos)
{
_asm
{
mov edi, edi
push ebp
mov ebp, esp
jmp[GPA]
}
}
COLORREF WINAPI GetHPPixelColor()
{
COLORREF NullColor = RGB(255, 255, 255);
if (cHandle == NULL)
{
// Get window handle on MapleStory
cHandle = FindWindow("MapleStoryClass", NULL);
}
if ((cHandle != NULL) && (DLLFunc != NULL))
{
try
{
HDC MapleHDC = ::GetDC(cHandle);
COLORREF color = ::GetPixelX(MapleHDC, HP.x, HP.y);
return color;
}
catch(...)
{
MessageBox(0, "Error code: 0x00001", "Error!", MB_ICONSTOP | MB_OK);
return NullColor;
}
}
else
{
return NullColor;
}
}
e eu to usando
COLORREF HPActualColor = GetHPPixelColor();
+ sempre da o erro "Debug Error - The value of ESP was not properly saved across a function call" eu ainda n sei C++ direito então me ajuda ae. vlw.
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.