Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   .NET (https://www.clubdelphi.com/foros/forumdisplay.php?f=17)
-   -   external procedure (https://www.clubdelphi.com/foros/showthread.php?t=16877)

arantzal 15-12-2004 10:07:43

external procedure
 
Buenas,

sabe alguien si hay algún problema a la hora de pasar strings como parámetros de un procedimiento externo?.

Tengo lo siguiente:

procedure GestionarUsuarios(IdUsuario: integer; ColorFondo: TColor; Cadena1, Cadena2: string; ModoAdmin: Boolean); external 'Gestionar.dll' ;

.Al llamarle le paso 2 strings, pero me los corta y solo se queda con el primer char.

Alguna idea?.....
Saluditttooossss.

Héctor Randolph 15-12-2004 10:55:15

Hola arantzal!

Efectivamente existe un problema cuando pasas algún string como parámetro a un procedimiento externo.

Lo que sucede es que Delphi maneja la memoria compartida a través de una biblioteca llamada BORLNDMM.DLL, por esta razón cuando pasas Strings como parámetros debes incluir la unidad ShareMem y además debe ser la primera unidad en la cláusula Uses de cualquier proyecto o unidad que haga uso del procedimiento externo.

Si prefieres evitar el uso de la librería BORLNDMM.DLL, entonces debes envíar como parámetros PChar o ShortString.


Espero que te sea útil

Hasta pronto.

arantzal 15-12-2004 11:39:26

Muxas gracias Hector,
pero he probado con el tipo ShortString y me da la excepción: Can not marshall parameter #4, que es justo el parámetro de ese tipo.
Alguna idea de porqué me da eso?.

Gracias de nuevo.
Saludos.

arantzal 16-12-2004 11:41:36

Buenas,

ya lo he conseguido cambiando el tipo string por variant.

Saludos.


La franja horaria es GMT +2. Ahora son las 20:53:07.

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