![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
|||
|
|||
|
Creo que no me expliqué adecuadamente o no te entendí, pero hice lo que me dijiste y el error al compilar fue el siguiente: "[DCC Fatal Error] sumas.dpr(8): F1026 File not found: 'Dialogs.dcu'"
Código: Código:
library sumas;
uses
ShareMem,
Dialogs,
SysUtils,
Classes;
{$R *.res}
function Sumar(x,y:integer):Integer; stdcall; overload;
begin
ShowMessage (Format('1-Sumando %d+%d=%d',[x,y,(x+y)]));
Result := x+y;
end;
function Sumar2(x,y:integer):Integer; stdcall; overload;
begin
ShowMessage (Format('2-Sumando %d+%d=%d',[x,y,(x+y)]));
Result := x+y;
end;
exports Sumar(x,y:integer);
exports Sumar2(x,y:integer);
end.
Código:
Classes; |
|
#2
|
||||
|
||||
|
Cita:
Tienes TODA la razón. Al trabajar con Delphi XE2 hay que cambiar referencias a algunas units. Cambia Dialogs por VCL.Dialogs y prueba.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi ![]() P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
|
#3
|
|||
|
|||
|
Cita:
Supongo que es por un error donde dice "var Use: function(x,y:Integer):integer; stdcall;" Ya que la función no es esa, la función que quiero utilizar es "StartHook" o algo que la ejecute. ¿Alguna otra idea? Código:
program Call_suma_dinam;
uses
Sharemem,
SysUtils,
Classes,
Windows,
VCL.Dialogs;
{$R *.res}
var
H: Thandle;
res:integer;
Use: function(x,y:Integer):integer; stdcall;
begin
if (MessageBox(0, '¿Desea cargar la DLL?', '', MB_ICONQUESTION or MB_YESNO) = idNo) then begin
Exit;
end;
H := LoadLibrary('Project1.dll');
// Cargada correctamente?
if (H >= 32) then begin
MessageDlg('Cargada la DLL...', mtInformation, [mbOK], 0);
sum := nil;
@sum := GetProcAddress(H, 'StartHook');
// Asignada?
if Assigned(sum) then begin
MessageDlg('Acceso a la función StartHook', mtInformation, [mbOK], 0);
// llamada
res := Sum(Starthook);
MessageDlg(Format('Resultado: %d+%d=%d',[4,5,res]), mtInformation, [mbOK], 0);
FreeLibrary(H);
end;
end
else
MessageDlg('Error, no se ha encontrado SUMAR.DLL', mtError, [mbOk], 0)
end.
end.
|
|
#4
|
||||
|
||||
|
¿Estas utilizando un Win32 o un Win64?.
Suponiendo que importas bien la función StartHook y que su declaración es correcta, si ese Hook que realiza la dll que quieres usar requiere su inyección en procesos de 64 bits, dicha inyección no se va a realizar. Un proceso compilado para 64 bits no puede cargar una dll compilada para 32 bits. ![]() Saludos. |
|
#5
|
||||
|
||||
|
¿Exactamente qué cabecera tienen esas funciones?
¿Cómo están definidas?
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi ![]() P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
|
#6
|
||||
|
||||
|
Prueba con algo así y te debería funcionar:;
Para comprobarlo pon un dialog dentro del procedimiento y verás si se ejecuta. Aquí he supuesto que la cabecera de la función coincide con esta:
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi ![]() P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
|
#7
|
|||
|
|||
|
Ahí compiló perfectamente, pero ahora el .exe por más que me diga que llama al .dll aparentemente no lo hace!.
Eliminé el .dll de todos lados y aún así dice haberlo encontrado y acceder a su función. Y si los ejecuto juntos, aparentemente también dice acceder a su función aunque no haga nada de lo que debería hacer (el .dll) ¿Alguna idea? Me estoy volviendo loco con esto... Gracias! |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| ¿Cómo crear el ejecutable y un installshield en delphi 2010? | Master23 | OOP | 2 | 08-03-2010 12:03:02 |
| como crear un ejecutable? | fasthorse | C++ Builder | 7 | 22-01-2007 12:41:24 |
| ¿cómo crear un fichero ejecutable en otro ordenador? | elcaracas | C++ Builder | 2 | 01-11-2006 04:32:19 |
| ¿cómo crear un archivo ejecutable para aplicaciones en java? | rls | JAVA | 11 | 12-07-2006 17:42:39 |
| Como libero una forma que llame con un show | jaaron | OOP | 6 | 09-06-2005 19:39:52 |
|