Leer Librerias de 32bits

Post Reply
martindelangel
Posts: 2
Joined: Thu May 04, 2006 8:18 pm
Location: Reynosa,Tamaulipas,Mexico

Leer Librerias de 32bits

Post by martindelangel »

Hola, a todos !

Tengo una duda, dudota......


Tengo una Aplicación en Clipper 5.2e la cual requiere de mandar llamar 2 Funciones que se encuentran en una Libreria de 32 Bits, la libreria esta en forma estatica (.LIB) y en Forma Dinamica (.DLL).

Tengo Fivewin para Clipper y en los Ejemplos vi el siguiente ejemplo:

// This sample shows how to make a Dynamic Linking at RunTime!
// Using Borland BWCC.DLL DLLs

#include "FiveWin.ch"

#ifdef __CLIPPER__
#define BORLAND "bwcc.dll"
#else
#define BORLAND "bwcc32.dll"
#endif

//----------------------------------------------------------------------------//

function Main()

BWCCMessageBox( 0, OemToAnsi( "Using Borland's BWCC DLL" ),;
OemToAnsi( "Hello World!" ), 0 )

BWCCMessageBox( 0, OemToAnsi( FWCOPYRIGHT ), FWVERSION, 2 )

SndPlaySound( "Ahhhhh.wav", 0 )

return nil

//----------------------------------------------------------------------------//

DLL FUNCTION BWCCMessageBox( hWnd AS WORD, cText AS LPSTR, cTitle AS LPSTR,;
nType AS WORD ) AS WORD PASCAL LIB BORLAND

DLL FUNCTION SndPlaySound( cFile AS LPSTR, nType AS WORD ) AS BOOL ;
PASCAL LIB "MMSYSTEM.DLL"

DLL32 FUNCTION AllocConsole() AS BOOL PASCAL LIB "KERNEL32.DLL"

------------------------------------------------------------------------------------
La libreria que quiero llamar se llama SGENC32.DLL y SGENC32.LIB


La Documentación para Accesar a dicha libreria es el siguiente:


/* Definiciones en "C" */

/* Estructura Anterior */
typedef struct struct_curps
{
char curp[19],
archivokey[256],
password[256];
} struct_curps;


/* Estructura Actual (Generica) */
typedef struct struct_curps_g
{
char curp[19], /* CURP AA o Apoderado que firma */
archivokey[256], /* Nombre y RUta del archivo KEY del AA o Apoderado */
archivocer[256], /* Nombre y RUta del archivo CER del AA o Apoderado */
password[256]; /* Contraseña para apertura de la llave privada */
} struct_curps_g;


/* Funciones anteriores */
int BuscaCurps(char *archivoOrig, struct struct_curps *CURPS);
int GeneraFirmaDigital(char *archivoOrig, struct struct_curps *CURPS);
int BuscaCurps_std(char *archivoOrig, struct struct_curps *CURPS);
int GeneraFirmaDigital_std(char *archivoOrig, struct struct_curps *CURPS);

/* Funciones Actuales (Genericas) */
int BuscaCurpsG(char *archivoOrig, int tipo, struct struct_curps_g *CURPS);
int GeneraFirmaDigitalG(char *archivoOrig, int tipo, struct struct_curps_g *CURPS);
int BuscaCurpsG_std(char *archivoOrig, int tipo, struct struct_curps_g *CURPS);
int GeneraFirmaDigitalG_std(char *archivoOrig, int tipo, struct struct_curps_g *CURPS);

/*
Donde tipo = Tipo de documento a firmar

0 (cero) = PEDIMENTOS
1 = ENCARGOS
2 = AVISOs DE TRANSFERENCIA
*/



' Definiciones VB
' Estructura anterior
Public Type registro_CURP
curp As String * 19
archivokey As String * 256
password As String * 256
End Type

' Estructura actual (Generica)
Public Type registro_CURPG
curp As String * 19
archivokey As String * 256
archivocer As String * 256
password As String * 256
End Type

' Funciones anteriores
Declare Function BuscaCurps Lib "sgenc32" Alias "_BuscaCurps@8" (ByVal strArchOrig As String, ByRef CURPS() As registro_CURP) As Long
Declare Function GeneraFirmaDigital Lib "sgenc32" Alias "_GeneraFirmaDigital@8" (ByVal strArchOrig As String, ByRef CURPS() As registro_CURP) As Long

' Funciones actuales (Genericas)
Declare Function BuscaCurpsG Lib "sgenc32" Alias "_BuscaCurpsG@12" (ByVal strArchOrig As String, ByVal tipo As Long, ByRef CURPS() As registro_CURPG) As Long
Declare Function GeneraFirmaDigitalG Lib "sgenc32" Alias "_GeneraFirmaDigitalG@12" (ByVal strArchOrig As String, ByVal tipo As Long, ByRef CURPS() As registro_CURPG) As Long


Nuevos Códigos de Error:

10 = Tipo de documento a firmar no valido
11 = No se pudo leer el certificado
12 = Certificado caduco.
13 = El archivo contiene más de un registro 201.




La Pregunta es ?

Como lo implemento para Clipper y Fivewin ?



Gracias a todos , se los agredecere infinitamente.
[/i]
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Martín,

Se puede hacer, pero la pregunta es ¿ por qué no pasas toda la aplicación a 32 bits usando FWH con lo que se facilitaría mucho el trabajo ?
regards, saludos

Antonio Linares
www.fivetechsoft.com
martindelangel
Posts: 2
Joined: Thu May 04, 2006 8:18 pm
Location: Reynosa,Tamaulipas,Mexico

Librerias de 32Bits

Post by martindelangel »

Gracias por la atención


Voy a entrar a detalle:


Soy de Mexico y tengo una aplicación para elaborar Pedimentos de Importación y Exportación , La Aduana de Mexico Publico unas Reformas el 10 de Abril sobre los Formatos de los mismos, las reformas entraron en Vigor el 2 de Mayo, por lo cual era muy tiempo para implementar todos _ en el Sistema, hemos estado trabajando casi 20 hrs diarias y ahorita La de Aduana de Mexico dio una prorroga que termina Hoy 5 de Mayo, entros _ hay que imprimir una Firma Digital Avanzada.

Para eso el Sat de Mexico puso en su pagina una libreria para generar dicha Firma.

lo que deseo hacer es una pequeña aplicación en FW , la cual sea llamada desde Clipper.

Si pudo ver en el Post, Necesito definir una Estructura y los parametros de las Funciones.

Necesito saber como declaro una estructura usando FW y los parametros de las Funciones donde hay estructuras.

Si hay una equivalencia de las estructuras o No. ?



MIgrar esta aplicación tardaria mas de 6 meses.



Gracias..
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Martín,

Busca por "STRUCT " en los PRGs de los fuentes de FiveWin y encontrarás bastantes ejemplos.

Tambien busca por "DLL32"
regards, saludos

Antonio Linares
www.fivetechsoft.com
Post Reply