Leer Librerias de 32bits
Posted: Fri May 05, 2006 1:43 am
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]
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]