Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: ByJørGe en 2 Febrero 2017, 16:16 PM

Título: (Ayuda)Pasando codigo delphi para c++...
Publicado por: ByJørGe en 2 Febrero 2017, 16:16 PM
Buenas que tal con todos, estoy pasando mi codigo delphi, para C++ builder y hasta ahora he logrado esto :  
MOSTRARE PRIMERO EL CODIGO DELPHI .-


procedure Tester();
var
ADD1:procedure;
ADD2:procedure;
begin
ADD1 := GetProcAddress(GetModuleHandleA(PAnsiChar('Verin.dll')), PAnsiChar('FUNCION1'));
ADD2 := GetProcAddress(GetModuleHandleA(PAnsiChar('VerinAllign3.dll')), PAnsiChar('FUNCION2'));
while(true) do begin
   Sleep(40);

        if (GetAsyncKeyState(VK_F1) <> 0) then begin;

       asm
       call ADD1
       mov ecx, eax
       mov edi, eax
       call pADD2
     end;
   end;
 end;
end;



ACA MOSTRARE EL CODIGO QUE HE LOGRADO HACER EN C++ BUILDER  :P :
void __fastcall Tester()
{
PAnsiChar ADD1 = (PAnsiChar)GetProcAddress(GetModuleHandleA("Verin.dll"), "FUNCION1");
PAnsiChar ADD2 = (PAnsiChar)GetProcAddress(GetModuleHandleA("VerinAllign3.dll"), "FUNCION2");
while(true)
Sleep(40);
if (GetAsyncKeyState(VK_F1) != 0)
_asm
{
call ADD1
mov ecx, eax
mov edi, eax
call ADD2
}
}


Espero que me puedan ayudar, muchas gracias ! Saludos  :rolleyes:
Título: Re: (AYUDA)PASANDO CODIGO DELPHI PARA C++ ..
Publicado por: ivancea96 en 2 Febrero 2017, 16:30 PM
No pongas títulos en mayúsculas.


¿Cuál es tu problema al pasarlo?
Título: Re: (AYUDA)PASANDO CODIGO DELPHI PARA C++ ..
Publicado por: ByJørGe en 2 Febrero 2017, 16:37 PM
okey, tomare en cuenta sobre el titulo.
Bueno al parecer el codigo que he pasado , si compila, pero no funciona..
quisiera algun ejemplo para poder continuar :s ,  soy nuevo en c++ .
Quisiera declarar estas variables de delphi para C++ Builder :
var
ADD1:procedure;
ADD2:procedure;
Título: Re: (Ayuda)Pasando codigo delphi para c++...
Publicado por: ivancea96 en 2 Febrero 2017, 17:25 PM
¿Qué es PAnsiChar en el código C++?

GetProcAddress retorna un puntero a función.

Los punteros a función se declaran en C/C++ así:
tipo_retorno(*nombre_variable)(parámetros);
Código (cpp) [Seleccionar]
void(*func)(int, char) = (void(*)(int, char)) GetProcAddress(...);

Aunque se suele poner el tipo en un using o un typedef:

Código (cpp) [Seleccionar]
using Funcion = void(*)(int, char);
typedef void(*Funcion2)(int, char);

Funcion f = (Funcion) GetProcAddress(...);
Funcion2 f2 = (Funcion2) GetProcAddress(...);
Título: Re: (Ayuda)Pasando codigo delphi para c++...
Publicado por: ByJørGe en 2 Febrero 2017, 17:53 PM
Error :$

(https://scontent.flim5-1.fna.fbcdn.net/v/t31.0-8/16300099_249446098833991_3328911925104646733_o.jpg?oh=8fb5625207f4cab03ba1a1ab062380d9&oe=5915903B)
Título: Re: (Ayuda)Pasando codigo delphi para c++...
Publicado por: ivancea96 en 2 Febrero 2017, 17:57 PM
¿Y los mensajes de error?

En cualquier caso, esas que te puse son 2 alternativas, no las uses ambas. O usas la una o la otra (para no mezclar).

"using" existe desde el estándar de C++11. No sé qué compilador, así que prueba con typedef solo.

De todos modos, sin mensajes de error, poco más puedo hacer.


EDITO: Olvida lo que dije (o no, segun los errores).

ADD1 y ADD2 ahora son tipos, no variables. Fíjate exactamente en cómo lo puse yo en mi ejemplo.

EDITO2: Y, nuevamente, pregunto. Qué es PAnsiChar.
Título: Re: (Ayuda)Pasando codigo delphi para c++...
Publicado por: ByJørGe en 2 Febrero 2017, 18:07 PM
ACA ESTA LA IMAGEN DEL ERROR...
(https://scontent.flim5-1.fna.fbcdn.net/v/t1.0-9/16298990_670777169770614_2079519784262379679_n.jpg?oh=8211ef0a09c83b59addedd04970fec86&oe=590EDD7F)
Título: Re: (Ayuda)Pasando codigo delphi para c++...
Publicado por: ivancea96 en 2 Febrero 2017, 19:24 PM
Si ADD2 ahora es un tipo, entonces:
Código (cpp) [Seleccionar]
ADD2 func = (ADD2) GetProcAddress(...)

Lo d ela doble declaración, pues es que no puedes declarar 2 variables o tipos con el mismo nombre.