Cita:
La dll está pidiendo una cadena estilo C, y en C una cadena es un array; y un array se representa por un puntero a su primer elemento. En este caso también vale poniendo el nombre del array estático como te puse en el otro ejemplo.
|
Esto significa que en una funcion, por ej. CargarDatosCliente() las cadenas debo definirlas como Array igual que el anterior? Pueden ser dinamicas, sin tamaño?
Código Delphi
[-]type
TCargarDatosCliente = function ( nombre_o_razon_social1 :PansiChar; nombre_o_razon_social2 :PansiChar;
domicilio1 :PansiChar; domicilio2:PansiChar; domicilio3:PansiChar;
id_tipo_documento :LongInt; numero_documento:PansiChar; id_responsabilidad_iva :LongInt): LongInt; StdCall;
var
Nombre1 : Array of char[];
Nombre2 : Array of char[];
Direccion1 : Array of char[];
Direccion2 : Array of char[];
TipoDoc:LongInt;
NroDoc:LongInt;
idIVA:LongInt;
Begin
@CargarDatosCliente := GetProcAddress(dll, 'CargarDatosCliente');
Nombre1:=' JUAN PEREZ';
Nombre2:='';
Direccion1:='Calle Nº';
Direccion2:='Localidad..';
TipoDoc := 1; NroDoc := 10000000;
idIVA := 1; error := CargarDatosCliente( @CargarDatosCliente, @Nombre1[0],@Nombre2[0],@Direccion1[0],@Direccion2[0], TipoDoc , NroDoc, IdIVA );
ShowMessage( IntToStr(error) );
End;