Buenas estoy teniendo muchisimos dramas para hacer funcionar EpsonFiscalInterface.dll, paso a comentar tengo el simulador instalado y andando, tengo todos y cada uno de los ejemplos que me pasaron en lazarus (yo uso delphi xe7) la cosa es asi puedo conectar el fiscal sin problemas pude instanciar la dll sin problemas, pero a la hora de enviar comandos se empieza a complicar.
Código Delphi
[-]
procedure TForm3.Button1Click(Sender: TObject);
var
dll : THandle;
numero_int: integer;
prueba: STRING;
mayor : LongInt;
menor : LongInt;
str : Array[0..200] of AnsiChar;
error : LongInt;
ConsultarVersionDll: TConsultarVersionDll;
EstablecerEncabezado: TEstablecerEncabezado;
begin
dll := 0;
dll := LoadLibrary('EpsonFiscalInterface.dll');
numero_int := 1;
ConfigurarPuerto(Pchar(IntToStr(3)));
ConfigurarVelocidad(StrToint('9600'));
retorno := Conectar();
@ConsultarVersionDll := GetProcAddress(dll, 'ConsultarVersionDll');
if not Assigned(ConsultarVersionDll) then
begin
ShowMessage('Error al asignar funcion: ConsultarVersionDll');
Exit;
end;
error := ConsultarVersionDll(@str[0], 200, mayor, menor );
ShowMessage( str );
@EstablecerEncabezado := GetProcAddress(dll, 'EstablecerEncabezado');
if not Assigned(EstablecerEncabezado) then
begin
ShowMessage('Error al asignar funcion: ConsultarVersionDll');
Exit;
end;
prueba:='EPSON mala onda';
error := EstablecerEncabezado(numero_int, PANSICHAR(prueba) );
memo1.Lines.Add(inttostr(ERROR)+ 'Encabezado numero ' + IntTostr(numero_int) + ' establecido ');
end;
end.
Esto es una porcion de codigo que hice de prueba ya probe de todo pero cuando por ejemplo quiero cambiar el encabezado solo me toma el primer caracter, probe de todo desde mandar strings, pchar, ansichar solo me toma la letra "E" de la cadena entera el simulador lo muestra asi. Ahora cuando corro alguno de los softs de prueba que te dan con la dll hace todo sin problemas. Es la primera vez q me pasa, mas con algo simple como cambiar el encabezado.
Desde ya agradezco las respuestas o si a alguien ya le paso similar.