Buenas tardes, estamos intentando usar el ejemplo de C++ Builder pero estamos recibiendo un error del Linker.
Incluimos al proyecto el archivo .h de la carpeta de ejemplo, copiamos archivos .dll en la misma carpeta.
#include "CFDlib.h"
/// Codigo
/// Codigo
void __fastcall TForm1::Button1Click(TObject *Sender)
{
String clave;
OpenDialog->Title="CARGAR LLAVE PRIVADA PARA PROBAR LA CLAVE";
OpenDialog->DefaultExt="key";
OpenDialog->Filter="Llave Privada (*.key)|*.key";
if (OpenDialog->Execute())
{
clave = InputBox("","Introduzca la clave de la Llave Privada","12345678a");
if (PruebaClaveDeLlavePrivada(OpenDialog->FileName.c_str(),clave.c_str()))
ShowMessage("La clave es correcta");
else
ShowMessage("La clave no es correcta");
}
}
Al compilar no genera errores pero al usar el archivo .obj recibimos un error del Linker
[Linker Error] Unresolved external 'PruebaClaveDeLlavePrivada' referenced from E:\FUENTES\CFDLIB.DLL\EJEMPLO C++ BUILDER\UNIT1.OBJ
Estamos usando C++ Builder 6
Gracias.

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
.
error de Linker en C++ Builder
- Dado
- Mensajes: 15981
- Registrado: Mar Jul 06, 2010 7:56 pm
Re: error de Linker en C++ Builder
Revisa todo el codigo y asegurate que este buscando la dll en la ruta correcta (no uses rutas relativas, trata de que se programen rutas absolutas, completas)
ADDENDAS? VALIDACION? CODIGO PARA PROGRAMAR TU PROPIA SOLUCION? TODO LO TENEMOS EN WWW.VALIDACFD.COM VISITANOS !!
-
- Mensajes: 47
- Registrado: Lun Ago 06, 2012 4:38 pm
Re: error de Linker en C++ Builder
Ya se ha arreglado el problema, faltaba añadir la libreria .lib al proyecto, pero ahora con la primera prueba.
String clave;
String archivo;
OpenDialog->Title="CARGAR LLAVE PRIVADA PARA PROBAR LA CLAVE";
OpenDialog->DefaultExt="key";
OpenDialog->Filter="Llave Privada (*.key)|*.key";
if (OpenDialog->Execute())
{
clave=InputBox("","Introduzca la clave de la Llave Privada","12345678a");
archivo=OpenDialog->FileName;
if (PruebaClaveDeLlavePrivada(archivo.c_str(),clave.c_str()))
ShowMessage("La clave es correcta");
else
ShowMessage("La clave no es correcta");
}
Nos envia un error, "Se requiere un dato obligatorio" al revisar la bitácora nos encontramos con esto
---Iniciando Consulta de Saldos---
Abriendo archivo ini : C:\Fuentes\Librerias Facturacion Electronica\CFDLib.dll\CFDLib.dll\Certificados\aaa010101aaa_csd_01.key
Cargando Datos del PAC :
ERROR FATAL : Se requiere un dato obligatorio :
[Parametros]
PAC= ?
También encontramos que al llamar función "CFDLibVersion()" abre la ventana de prueba, hace lo que haría "PruebaSimple()" sospechamos que están mal asociadas las funciones, espero nos puedan apoyar puesto que ya adquirimos la libreria, saludos.
String clave;
String archivo;
OpenDialog->Title="CARGAR LLAVE PRIVADA PARA PROBAR LA CLAVE";
OpenDialog->DefaultExt="key";
OpenDialog->Filter="Llave Privada (*.key)|*.key";
if (OpenDialog->Execute())
{
clave=InputBox("","Introduzca la clave de la Llave Privada","12345678a");
archivo=OpenDialog->FileName;
if (PruebaClaveDeLlavePrivada(archivo.c_str(),clave.c_str()))
ShowMessage("La clave es correcta");
else
ShowMessage("La clave no es correcta");
}
Nos envia un error, "Se requiere un dato obligatorio" al revisar la bitácora nos encontramos con esto
---Iniciando Consulta de Saldos---
Abriendo archivo ini : C:\Fuentes\Librerias Facturacion Electronica\CFDLib.dll\CFDLib.dll\Certificados\aaa010101aaa_csd_01.key
Cargando Datos del PAC :
ERROR FATAL : Se requiere un dato obligatorio :
[Parametros]
PAC= ?
También encontramos que al llamar función "CFDLibVersion()" abre la ventana de prueba, hace lo que haría "PruebaSimple()" sospechamos que están mal asociadas las funciones, espero nos puedan apoyar puesto que ya adquirimos la libreria, saludos.
- Dado
- Mensajes: 15981
- Registrado: Mar Jul 06, 2010 7:56 pm
Re: error de Linker en C++ Builder
El error de que falta un dato se refiere a que tu archivo ini esta mal.
Es en el archivo ini donde deberias tener el dato de PAC=nnnn , aunque este mensaje solo lo pone cuando usas la funcion TimbrarCFD()
Al parecer esta desactualizado el archivo lib de ejemplo, ya que esta direccionando mal las funciones, no conozco C++ para poder ayudarte mas, pero supongo que tienes que volver a generar el archivo lib (por cierto, si vuelves a generarlo te pediria me regales una copia para actualizar el ejemplo que incluyo en la descarga)
Es en el archivo ini donde deberias tener el dato de PAC=nnnn , aunque este mensaje solo lo pone cuando usas la funcion TimbrarCFD()
Al parecer esta desactualizado el archivo lib de ejemplo, ya que esta direccionando mal las funciones, no conozco C++ para poder ayudarte mas, pero supongo que tienes que volver a generar el archivo lib (por cierto, si vuelves a generarlo te pediria me regales una copia para actualizar el ejemplo que incluyo en la descarga)
ADDENDAS? VALIDACION? CODIGO PARA PROGRAMAR TU PROPIA SOLUCION? TODO LO TENEMOS EN WWW.VALIDACFD.COM VISITANOS !!
-
- Mensajes: 47
- Registrado: Lun Ago 06, 2012 4:38 pm
Re: error de Linker en C++ Builder
Ok, intentaremos generar la nueva libreria.