![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
![]() Hola muy buen día a todos.
Estaba con un grupo de personas haciendo un programa y hubo una equivocación en una de las Dll, del error nos dimos cuenta después porque no era muy llamativo, y ya no teníamos el código de la Dll. Por ende alguien hizo una Dll en ASM (Usando RadAsm) para "Reparar" de una manera sencilla y practica el error en uno de los valores... Sin embargo por motivos personales decidió dejar el proyecto, aunque dejando sus códigos. Y bueno el código en asm funciona bien, yo no sé prácticamente nada de asm, por ende considere traducir el código de Asm a Delphi para tener un poco más de control. El código en Asm es similar al siguiente::: Código:
.386 .model flat,stdcall option casemap:none include windows.inc include user32.inc include kernel32.inc includelib user32.lib includelib kernel32.lib Tarea1 PROTO .data Libreria db "DatosHWDER.dll",0 Funcion1 db "Valor1_HWDER",0 Funcion2 db "Valor2_HWDER",0 .data? .code Punto_de_Inicio proc hInstance:HINSTANCE, reason:DWORD, reserved1:DWORD .IF (reason == DLL_PROCESS_ATTACH) mov eax,TRUE invoke CreateThread,NULL,NULL,ADDR Tarea1 ,NULL,NULL,NULL .ELSEIF (reason == DLL_PROCESS_DETACH) invoke ExitProcess, NULL .ENDIF ret Punto_de_Inicio Endp Tarea1 proc LOCAL x:DWORD LOCAL Aux1:DWORD LOCAL Aux2:DWORD tecla: jz tecla invoke GetModuleHandle, addr Libreria invoke GetProcAddress, eax, addr Funcion1 mov Aux1,eax invoke GetModuleHandle, addr Libreria invoke GetProcAddress, eax, addr Funcion2 mov Aux2,eax mov esi,Aux2 mov edi,Aux1 mov ecx,96 xor edx,edx .REPEAT mov dl, byte ptr [esi] mov byte ptr [edi],dl inc esi inc edi .UNTILCXZ jmp tecla ret Tarea1 endp End Punto_de_Inicio Y con mi poca experiencia en Asm lo he intentado traducir un poco en Delphi:::
Sin embargo al momento de compilar el código en RadAsm todo bien, la Dll funciona, pero cuando uso la Dll en Delphi no me resulta... ¿A qué se debe esto, he omitido algo en la traducción que hace que no ande? De antemano, muchas gracias. |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
codigo de la vcl en delphi xe | balger | Varios | 1 | 13-05-2011 11:03:58 |
Traduciendo lclstrconsts.pas | Robert01 | Lazarus, FreePascal, Kylix, etc. | 6 | 12-02-2008 23:50:08 |
ANN: AnyNET-Delphi: Herramienta para generar codigo fuente Delphi desde :NET | mamcx | Noticias | 7 | 21-05-2007 02:12:36 |
de codigo VB a codigo Delphi | ingel | Impresión | 2 | 20-07-2004 14:15:44 |
codigo sql en delphi | azaagh | SQL | 4 | 11-06-2004 18:15:55 |
![]() |
|