Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Como compilo este codigo dll en delphi ? (https://www.clubdelphi.com/foros/showthread.php?t=90764)

helio 31-08-2016 04:55:47

Como compilo este codigo dll en delphi ?
 
hola amigos, hace poco me enviaron un codigo que necesito para un juego pero estoy muy perdido al respecto, me dieron detalles que es en delphi y el codigo es el siguiente :

Código Delphi [-]
{Function SGM
Parameters:  lpMessage is a pointer for the message you wanna show
dwIcon is the icon value you wanna show (0 = no icon)
dwColor is the color value you wanna show}
procedure ShowGameMessage_Fixed(lpMessage: PChar;dwIcon: byte; dwColor: byte);
var
dwMessage: cardinal;
procedure ShowGameMessage_Real(lpMessage: PChar);assembler;
asm

pushad
mov ecx, [dwMessage]
add ecx, $44
mov bh, [dwIcon]
mov [ecx], bh
add ecx, $47
mov [ecx], bh
add ecx, $47
mov [ecx], bh
mov bh, [dwColor]
mov ecx, [dwMessage]
add ecx, $5C
mov [ecx], bh
add ecx, $31
mov [ecx], bh
add ecx, $E
mov [ecx], bh
add ecx, $39
mov [ecx], bh
add ecx, $10
mov [ecx], bh
popad
jmp @call

@call:
lea edi, [lpMessage]
call [dwMessage]
jmp @rebuild

@rebuild:
mov [dwIcon], 6
mov [dwColor], 2
mov ecx, [dwMessage]
add ecx, $44
mov bh, [dwIcon]
mov [ecx], bh
add ecx, $47
mov [ecx], bh
add ecx, $47
mov [ecx], bh
mov bh, [dwColor]
mov ecx, [dwMessage]
add ecx, $5C
mov [ecx], bh
add ecx, $31
mov [ecx], bh
add ecx, $E
mov [ecx], bh
add ecx, $39
mov [ecx], bh
add ecx, $10
mov [ecx], bh
end;

begin
dwMessage := $00414B80;
ShowGameMessage_Real(lpMessage);
end;


pero no me quisieron ayudar para compilarlo :/ - alguien sabe como puedo hacerlo.

Casimiro Notevi 31-08-2016 11:19:23

Bienvenido a clubdelphi, como siempre aconsejamos a los nuevos, no olvides leer nuestra guía de estilo, gracias por tu colaboración :)

¿Y la pregunta es?

helio 31-08-2016 17:10:36

Hola entiendo, cometi el error de no ser practico...
la pregunta final es ¿alguien sabe como puedo empaquetar eso en delphi? , gracias

Casimiro Notevi 31-08-2016 19:16:59

Es que no se entiende bien lo que quieres hacer. Para compilarlo solamente debes pulsar control+F9 en el IDE de delphi.

BDWONG 31-08-2016 21:56:39

Hola pues si no sabes como crearte una DLL puedes mirar este enlace http://www.ajpdsoft.com/modules.php?...rticle&sid=261

Quedaria asi

Código Delphi [-]
library Funcion;

{ Important note about DLL memory management: ShareMem must be the
  first unit in your library's USES clause AND your project's (select
  Project-View Source) USES clause if your DLL exports any procedures or
  functions that pass strings as parameters or function results. This
  applies to all strings passed to and from your DLL--even those that
  are nested in records and classes. ShareMem is the interface unit to
  the BORLNDMM.DLL shared memory manager, which must be deployed along
  with your DLL. To avoid using BORLNDMM.DLL, pass string information
  using PChar or ShortString parameters. }



{$R *.res}

procedure ShowGameMessage_Fixed(lpMessage: PChar;dwIcon: byte; dwColor: byte);
var
dwMessage: cardinal;
procedure ShowGameMessage_Real(lpMessage: PChar);assembler;
asm

pushad
mov ecx, [dwMessage]
add ecx, $44
mov bh, [dwIcon]
mov [ecx], bh
add ecx, $47
mov [ecx], bh
add ecx, $47
mov [ecx], bh
mov bh, [dwColor]
mov ecx, [dwMessage]
add ecx, $5C
mov [ecx], bh
add ecx, $31
mov [ecx], bh
add ecx, $E
mov [ecx], bh
add ecx, $39
mov [ecx], bh
add ecx, $10
mov [ecx], bh
popad
jmp @call

@call:
lea edi, [lpMessage]
call [dwMessage]
jmp @rebuild

@rebuild:
mov [dwIcon], 6
mov [dwColor], 2
mov ecx, [dwMessage]
add ecx, $44
mov bh, [dwIcon]
mov [ecx], bh
add ecx, $47
mov [ecx], bh
add ecx, $47
mov [ecx], bh
mov bh, [dwColor]
mov ecx, [dwMessage]
add ecx, $5C
mov [ecx], bh
add ecx, $31
mov [ecx], bh
add ecx, $E
mov [ecx], bh
add ecx, $39
mov [ecx], bh
add ecx, $10
mov [ecx], bh
end;

begin
dwMessage := $00414B80;
ShowGameMessage_Real(lpMessage);
end;

exports ShowGameMessage_Fixed;

begin
end.


Si aun asi no puedes te dejo la DLL ya compilada
https://www.sendspace.com/file/r4cf8x
El codigo ha sido compilado con Delphi berlin 10 en un sistema operativo de 32 bits

PD: No la he probado solo la compile eso te queda como tarea.
Saludos....:cool:

Delphius 31-08-2016 22:04:24

Estos niños de hoy en día...
Que curiosos que son, todos vienen al foro con un asm "que le pasaron" y "les dicen que es Delphi" y que es "para un juego" y que se meten en la yerbas de algún dll :rolleyes:
¡Que coindicencias! :p:D

Saludos,


La franja horaria es GMT +2. Ahora son las 17:17:17.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi