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. |
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. |
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. |
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