Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 20-07-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 30
jachguate Va por buen camino
Cool

Cita:
Empezado por delphi.com.ar
Yo pensaría en replantear el tipo de dato
Es que hay un sabido inconveniente entre los Strings al estilo delphi y las DLL's. Podes usar pchar, o bien strings al estilo pascal (sin contador de referencias y memoria dinámica, pero limitados a 255 caracteres).

Si insistis en usar strings, mirate la ayuda de la unidad ShareMem.

Cita:
Empezado por delphi.com.ar
y si quieres pasar clases, te recomendaría utilizar BPL´s en lugar de DLL´s.
Pues yo he usado dll's sin mayores problemas, pero tampoco muy extensamente... ¿porque bpl's y do dll's?

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #2  
Antiguo 20-07-2004
NeWNeO NeWNeO is offline
Miembro
 
Registrado: ago 2003
Posts: 35
Poder: 0
NeWNeO Va por buen camino
Post Modificación

He modificado String por PChar y si que se envia el resultado, pero una vez gestionado saca un error, pero esta vez en lugar de en el dll en el archivo exe...

Código Delphi [-]

procedure TForm1.RunClick(Sender: TObject);
var
h: THandle;
title: function(Sender: TObject):PChar; stdcall;
begin
 DLLControl1.LibDir := GetCurrentDir;
 h := DLLControl1.AllocateDLL('dllfile.dll');
 if h  = 0 then showmessage('File not found');
 if DLLControl1.CheckFunction(h,'Test',@title) then showmessage(Title(Self))  else showmessage('Process not found');
 DLLControl1.DeallocateDLL(h);
end;

Gracias

Última edición por NeWNeO fecha: 20-07-2004 a las 17:33:38.
Responder Con Cita
  #3  
Antiguo 20-07-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.964
Poder: 29
delphi.com.ar Va camino a la fama
Cita:
Empezado por jachguate
¿porque bpl's y do dll's?
Simplemente porque las BPL´s han sido diseñadas con este propósito... No se que pasará con el versionamiento en DLL´s comunes, supongo que es un access violation asegurado .
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #4  
Antiguo 20-07-2004
NeWNeO NeWNeO is offline
Miembro
 
Registrado: ago 2003
Posts: 35
Poder: 0
NeWNeO Va por buen camino
Solucionado :D

He eliminado el Stdcall de la función y ahora funciona al 100% usando PAnsiChar.

Código Delphi [-]
title: function(Sender: TObject):PAnsiChar; Stdcall;
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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 13:16:31.


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