Delphi - URGENTE - Agregar Componete en DLL

 
Vista:

URGENTE - Agregar Componete en DLL

Publicado por FEDERICO (9 intervenciones) el 26/03/2003 17:35:22
Buen Dia.
Estoy haciendo una funcion dentro de una dll que quiero que incluya un objeto. Pero no se como inicializarlo y tampoco se si puedo incluirlo.
(Ya probe con el metodo create pero me tira error porque mi objeto no es un Tcomponent)
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:URGENTE - Agregar Componete en DLL

Publicado por Ernesto D'Spirito (706 intervenciones) el 26/03/2003 17:58:14
Puedes usar objetos en tus DLLs y no es necesario que sean descendientes de TComponent. Sería bueno que proveyeras un código de muestra como para entender mejor tu problema, y que escribieras el texto exacto y completo del mensaje de error, indicando en que línea aparece y si se trata de un error de compilación o de ejecución.

Ernesto D'Spirito
http://www.latiumsoftware.com/es/index.php
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:URGENTE - Agregar Componete en DLL

Publicado por FEDERICO (9 intervenciones) el 26/03/2003 18:14:39
Me sale error de Memoria. Debe ser porque no inicialize el Objeto. Pero no se como inicializarlo, no se cual es el comando Ej:

Function nombre(para:pchar) :integer;exports;
var obw:TObjeto;
Begin
///ACA SEGURO ME FALTA LA PARTE DE DECLARACION PERO NO SE COMO ES . (create , new , O CUAL INSTTRUCCION)

nombre:= obw.metodo(para);
End;

Saludos Atte.
Federico Gordillo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:URGENTE - Agregar Componete en DLL

Publicado por Ernesto D'Spirito (706 intervenciones) el 26/03/2003 18:28:52
Para crear un objeto, se llama al constructor con el nombre de la clase. Por ejemplo:

var
objeto: clase;
begin
objeto := clase.constructor(parametros);

Los constructores se suelen llamar Create y suelen no llevar parámetros. Ejemplo:

objeto := clase.Create;

Después de creado sí puedes invocar métodos y propiedades. Ejemplo:

variable := objeto.propiedad;

Finalmente, cuando ya no necesitas el objeto, debes liberarlo invocando al método Free. Ejemplo:

objeto.Free;

En tu caso:

function nombre(para: pchar):integer; exports;
var
obw: TObjeto;
begin
obw := TObjeto.Create; // crea el objeto
nombre := obw.propiedad; // valor de retorno
obw.Free; // libera el objeto
end;

Si deseas compatibilidad con otros lenguajes, te sugiero que a tu función le agregues el modificador StdCall para indicar esa convención de llamadas, que es la típica de las DLL. Ejemplo:

function nombre(para: pchar):integer; stdcall; exports;

Ernesto D'Spirito
http://www.latiumsoftware.com/es/index.php
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar