Hola
Tengo un problema con la función GeneraCFD, la utilize en Delphi 6 y todo funciona correctamente pero cuando la intento utilizar en Delphi 2010 no funciona, al momento de llamarla el valor de retorno es diferente de OK y tanto GetError como GetErrorExt devuelven caracteres chinos y no puedo saber el error.
Estoy utilizzando el proyecto de demostracion "CFDLibTest" para delphi con los INI y los certificados que vienen incluidos pero no funciona.
¿A que se debe?

DESCARGA SOFTWARE PARA FACTURA ELECTRONICA DE AQUI.
Facturacion, Validacion, Addendas, Librerias de programacion, etc.
CARTA PORTE V3.1
ECODEX TIENE ESTOS NUEVOS DATOS DE CONTACTO :
Comercializacion y Ventas - Evelia Vicke evicke@ecodex.com.mx 33-16-03-03-48
Soporte - Humberto Guerrero soporte@ecodex.com.mx 33-34-90-46-03
.
No funciona GeneraCFD en Delphi 2010
-
- Mensajes: 11
- Registrado: Mié Nov 10, 2010 10:58 am
No funciona GeneraCFD en Delphi 2010
- Adjuntos
-
- Imagen del error
- Error.jpg (44.53 KiB) Visto 5147 veces
- Dado
- Mensajes: 15981
- Registrado: Mar Jul 06, 2010 7:56 pm
Re: No funciona GeneraCFD en Delphi 2010
Se debe al Unicode
Cambia todas las variables "string" por "AnsiString"
Cambia todas las variables "string" por "AnsiString"
ADDENDAS? VALIDACION? CODIGO PARA PROGRAMAR TU PROPIA SOLUCION? TODO LO TENEMOS EN WWW.VALIDACFD.COM VISITANOS !!
-
- Mensajes: 11
- Registrado: Mié Nov 10, 2010 10:58 am
Re: No funciona GeneraCFD en Delphi 2010
Pues ya cambie las variables pero me sigue marcando el mismo error. Lo malo es que no puedo saber ni que error es. Este el codigo, basicamente es el mismo que el del ejemplo solo cambie las variables al tipo AnsiString.
procedure TForm1.Button2Click(Sender: TObject);
var clave,FileN : AnsiString;
begin
OpenDialog.Title := 'CARGAR ARCHIVO INI PARA CONVERTIR A FACTURA';
OpenDialog.DefaultExt := 'ini';
OpenDialog.Filter := 'Archivo INI (*.ini)|*.ini';
if OpenDialog.Execute then
begin
clave := InputBox('','Introduzca la clave de la Llave Privada','');
FileN := OpenDialog.FileName;
if GeneraCFD(PChar(FileN),PChar(clave)) = OK then
MessageDlg('Se grabo la factura en formato XML'+#13#10#13#10+'La Cadena Original y el Sello Digital son'+
#13#10#13#10 + copy(CadenaOriginal,1,50) + '...' + #13#10#13#10 + copy(SelloDigital,1,50) + '...',mtInformation,[mbOK],0)
else
MessageDlg('Hubo un Error' + #13#10 + GetError + #13#10 + GetErrorExt,mtError,[mbOK],0)
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
var clave,FileN : AnsiString;
begin
OpenDialog.Title := 'CARGAR ARCHIVO INI PARA CONVERTIR A FACTURA';
OpenDialog.DefaultExt := 'ini';
OpenDialog.Filter := 'Archivo INI (*.ini)|*.ini';
if OpenDialog.Execute then
begin
clave := InputBox('','Introduzca la clave de la Llave Privada','');
FileN := OpenDialog.FileName;
if GeneraCFD(PChar(FileN),PChar(clave)) = OK then
MessageDlg('Se grabo la factura en formato XML'+#13#10#13#10+'La Cadena Original y el Sello Digital son'+
#13#10#13#10 + copy(CadenaOriginal,1,50) + '...' + #13#10#13#10 + copy(SelloDigital,1,50) + '...',mtInformation,[mbOK],0)
else
MessageDlg('Hubo un Error' + #13#10 + GetError + #13#10 + GetErrorExt,mtError,[mbOK],0)
end;
end;
- Dado
- Mensajes: 15981
- Registrado: Mar Jul 06, 2010 7:56 pm
Re: No funciona GeneraCFD en Delphi 2010
En el archivo CFDLibHeader.pas cambia TODOS los PChar por PAnsiChar
ejemplo :
ejemplo :
function GetError : PAnsiChar; stdcall; external 'CFDLib.dll';
ADDENDAS? VALIDACION? CODIGO PARA PROGRAMAR TU PROPIA SOLUCION? TODO LO TENEMOS EN WWW.VALIDACFD.COM VISITANOS !!
-
- Mensajes: 11
- Registrado: Mié Nov 10, 2010 10:58 am
Re: No funciona GeneraCFD en Delphi 2010
Problema resuleto cambie los tipos Pchar por PAnsiChar.
Y la llamada a la función quedo así:
if GeneraCFD(PansiChar(AnsiString(OpenDialog.FileName)),PansiChar(AnsiString(clave))) = OK then
Saludos
Y la llamada a la función quedo así:
if GeneraCFD(PansiChar(AnsiString(OpenDialog.FileName)),PansiChar(AnsiString(clave))) = OK then
Saludos