Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Providers (https://www.clubdelphi.com/foros/forumdisplay.php?f=10)
-   -   problema con componente com (https://www.clubdelphi.com/foros/showthread.php?t=57939)

consuldelphi 02-07-2008 17:49:39

problema con componente com
 
tengo un objeto com en delphi (es del tipo Automation object)
en la seccion donde se implementan las funciones, tengo el caso de una funcion
que hace una llamada a una funcion de un dll.

Este objeto com me genera un dll que registro.
el problema es que al registrar el dll (el objeto com) me lo registra y luego me da el error:
La instruccion en "0x0000000" hace referencia a la memoria en "0x00000000" la memoria
no se puede "written".
Lo extraño es que el error me da solo cuando hago la llamada a esa función de ese otro dll.

coso 02-07-2008 17:59:11

Hola. Por lo que se ve estas intentando acceder a algun objeto que no has dado memoria anteriormente, o bien lo has liberado antes de la llamada. Usando el debugger (f5,f7,f8) sabras exactamente en que linea te salta. Si puedes poner el codigo donde te salta quiza podamos ayudarte mejor. Saludos.

consuldelphi 02-07-2008 20:21:56

problema con componente com (2)
 
Este es un estracto del codigo que estoy usando. no lo puedo debugiar por ser dll
pero la diferencia es cuando quito y pongo la "linea problema" la cual se muestra en el codigo.
muchas gracias desde ya por la ayuda.



Public
...
...

function obtenerDato(prmser,prmusuario,prmmsg:OleVariant): Widestring:safecall;
end;

function ObtenerCalculoWeb (prmdec,prmcorrel,prmefec:Pchar): Integer; stdcall; external 'Calculoweb.dll' name 'ObtenerCalculoweb';


implementation


....
...


Function TClassDatos.obtenerDato(prmser,prmusuario,prmmsg:OleVariant): Widestring

var resultado:integer
begin

....
....

resultado:=ObtenerCalculoWeb(prmdec,prmcorrel,prmefec); {linea problema}

....
....

end;

coso 02-07-2008 20:25:55

Todos los PChar son diferentes de nil? si no es eso, es que la funcion esta mal programada. Si pudieras poner su codigo...

consuldelphi 02-07-2008 20:57:26

si son diferentes del nil. la situación es que yo no tengo el codigo del dll que tiene las funciones que uso en este caso (solo me dieron el dll). Lo raro es que utilicé este mismo codigo solo que para un programa con una forma normal y alli si me funciona y no me da ningun error. El problema es para este que es un dll

coso 02-07-2008 21:03:02

:confused: es un poco aventurar pero... es probable que cuando la usases sin ser dll la usases tambien con objetos globales a los que dabas memoria por otro lado? o que exista alguna funcion tipo IniciarCalculoWeb

consuldelphi 02-07-2008 21:12:55

voy a revisar el codigo y tomar en cuenta tus sugerencias.
muchas gracias


La franja horaria es GMT +2. Ahora son las 23:52:00.

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