FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
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! |
|
|
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 |
|