FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
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. |
#2
|
||||
|
||||
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. |
#3
|
|||
|
|||
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. |
#4
|
|||
|
|||
Buenas,
ya lo he conseguido cambiando el tipo string por variant. Saludos. |
|
|
|