Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   DLL stdcall external (https://www.clubdelphi.com/foros/showthread.php?t=84668)

marilinspi 19-11-2013 21:12:29

DLL stdcall external
 
hola a todos, quiero llamar una DLL y asi declaro la funcion

Código Delphi [-]
    function Contacta(Ruta:String; Serie:String; Empresa:String; Servidor:String):Boolean ; stdcall; external 'ConexionExterna.dll' name 'Inicializar';

pero no me compila, el problema lo tiene con la palabra External, si yo quito esa parte compila sino no, me estará faltando declarar algo, o registrar, el error que me da es 'definición de campo no se permite después de los métodos o propiedades'

cualquier dato que me puedan dar me va a ayudar, gracias desde ya.

ElKurgan 20-11-2013 08:03:30

Asi, tal como la has puesto, a mi me compila perfectamente.

¿No estará el error en alguna definición anterior de algún tipo? ¿Algún punto y coma que te falte?

Saludos

marilinspi 20-11-2013 12:26:16

hola, no el problema lo tiene con External, porque cuando compilo el cursos se posiciona en esta palabra y me da el error que di anteriormente 'Field definition not allowed after methods or propieties' no me faltara agregar algo en USES o que haya que registrar algo... porque lo único que yo hice fue agregar esa linea a mi proyecto... Gracias

marilinspi 20-11-2013 12:45:35

buscando... buscando... encontré el problema, pero me surgió otro
Código Delphi [-]
type
  TForm1 = class(TForm)
       function.....;
  end;

es que yo la tenia declarada donde pondría una función cualquiera y no es lo correcto, debe ir afuera de la clase

Código Delphi [-]
type
  TForm1 = class(TForm)
  end;

function......;

ahora compila pero me 'error de la aplicación' La aplicación no se ha podido inicializar correctamente (0xc000007b).
si yo solamente declaro la función no me da ningún error, el problema esta cuando llamo a esa función.... alguna ayudita que me pueda dar, la DLL esta hecha en Visual Basic.

Gracias, saludos

nlsgarcia 20-11-2013 17:26:08

marilinspi,

Cita:

Empezado por marilinspi
...el problema esta cuando llamo a esa función....la DLL esta hecha en Visual Basic...

Te comento:

1- El error se genera debido a que VB no puede crear DLLs estandar (De Forma Nativa), VB crea ActiveX DLLs, es por eso que no es posible encontrar un punto de entrada, sin importar si es StdCall o no el paso de parámetros.

2- Si tienes el fuente del ActiveX DLL en VB, puedes convertirlo a un DLL estándar por medio de PowerBasic, sin embargo esto implica cierto trabajo en la traslación.

Revisa estos links:
Cita:

Registering DLL and ActiveX controls from code : http://delphi.about.com/od/windowssh.../aa040803a.htm

How To Import an ActiveX Control in Delphi : http://delphi.about.com/library/howto/htaddactivex.htm

Creating a Windows DLL with Visual Basic : http://www.windowsdevcenter.com/pub/...reate_dll.html
Espero sea útil :)

Nelson.


La franja horaria es GMT +2. Ahora son las 05:34:30.

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