Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 08-10-2004
joumont joumont is offline
Miembro
 
Registrado: sep 2003
Ubicación: España
Posts: 23
Poder: 0
joumont Va por buen camino
Unhappy Uso de DLL

Tengo un "pequeño problema" usando DLL escritas en Delphi. Uso Delphi 6. El caso es que al internar usar funciones de la DLL, siempre que el valor que devuelve la funciópn es un String, no funciona, me da un error "Invalid Pointer Operation". He probado casi todo. He leido algo acerca de una libreria "FastShareMemory" que hay que usar pero no tengo ni idea. Necesitaria ayuda urgente, no se que hacer para sacar partido a las DLL.
Responder Con Cita
  #2  
Antiguo 08-10-2004
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
Los tipos string no son vàlidos dentro de las convenciones de llamadas de las DLLs... Te recomiendo utilizar tipos PChar que son punteros a caracter terminados en nulo, para porder pasar cadenas de caracteres.

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #3  
Antiguo 08-10-2004
joumont joumont is offline
Miembro
 
Registrado: sep 2003
Ubicación: España
Posts: 23
Poder: 0
joumont Va por buen camino
Necesitaria un ejemplo simple de una dll con una funcion que recibe un string y devuelva un pchar.

Muchas gracias por adelantado.
Responder Con Cita
  #4  
Antiguo 09-10-2004
Avatar de vic_ia
vic_ia vic_ia is offline
Miembro
 
Registrado: ene 2004
Posts: 238
Poder: 21
vic_ia Va por buen camino
hola...

segun entiendo, no es "recomendable" el uso de Strings, ni en el paso de parametros ni en el valor de retorno de una función que se encuentre en una DLL, como te lo han comentado, lo que debes hacer es utilizar, tanto en los parametros de llamada de la función como en el valor de retorno el tipo PChar

aunque borland te permite el uso de Strings en parametros y en valores de retorno estos solo son efectivos (me parece) cuando las llamas desde programas realizados en Delphi y ademas debes "distribuir" adicionalmente una de las librerias de borland (de momento no recuerdo el nombre) que es la que lleva a cabo todo el "trabajo" relacionado con Strings...

saludos....
Responder Con Cita
  #5  
Antiguo 10-10-2004
joumont joumont is offline
Miembro
 
Registrado: sep 2003
Ubicación: España
Posts: 23
Poder: 0
joumont Va por buen camino
Creo que la libreria a la que haces referencia es la "shareMem", pero tampoco se como usarla.
Responder Con Cita
  #6  
Antiguo 11-10-2004
Avatar de vic_ia
vic_ia vic_ia is offline
Miembro
 
Registrado: ene 2004
Posts: 238
Poder: 21
vic_ia Va por buen camino
hola joumont...

cuando habres un nuevo proyecto de DLL en forma de comentario te aparecen las indicaciones que debes de seguir si deseas utilizar Strings en tus DLL (y en los proyectos que la utilicen)....

saludos...
Responder Con Cita
  #7  
Antiguo 15-10-2004
joumont joumont is offline
Miembro
 
Registrado: sep 2003
Ubicación: España
Posts: 23
Poder: 0
joumont Va por buen camino
La solución la encontre pasando PChar a traves de un StringList, asignandole la memoria necesaria, antes de retornar el valor, me funciona bien. Unicamente que al retornar la cadena el final de la misma es algo así como $D$A, pero se puede quitar con el comando de cadenas delete
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 20:31:41.


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
Copyright 1996-2007 Club Delphi