Ayuda para instanciar driver en codigo incrustado
Publicado: Jue Ago 11, 2016 7:35 pm
Buenas Tardes :
Estimado Ignacio y soporte tecnico:
Disculpen que los moleste nuevamente :
Tengo un problema al activar un driver al importar un Activex...
No me funcionan los métodos donde uso variables contenedoras. Sobre todo con MingW y Harbour
En Xailer se genera la clase de la siguiente forma
CLASS TCZKEM FROM TOcx
// CZKEM Object en Windows
PROPERTY cCLSID INIT "zkemkeeper.ZKEM.1"
...
PUBLISHED:
.....
y uno de los métodos que genera problema es el siguiente :
METHOD GetUserFaceStr( ndwMachineNumber, cdwEnrollNumber, ndwFaceIndex, @cTmpData, @nTmpLength ) AS LOGICAL ID 233
En mis formularios lo Instancio de la siguiente manera:
WITH OBJECT ::oZkem := TCZKEM():New( SELF )
:create()
END
En la llamada al método previa declaración de Variables lo llamo de la siguiente forma
::oZkem:GetUserFaceStr(::nreloj, sUserID, 50, @sTmpData, @iLength)
Cuando Hago la llamada me indica error. y sale del programa ignorando los TRY - CATCH
*******************************************************************************************************************************************************
El proveedor me ha enviado el SDK con ejemplos en Visual y C# que funcionan correctamente.
En C# instancian la clase así :
Al inicio del proyecto:
public zkemkeeper.CZKEMClass axCZKEM1 = new zkemkeeper.CZKEMClass();
Y la función tiene la siguiente forma :
private void LoadFace_Click(object sender, EventArgs e)
string sUserID = "";
string sPassword = "";
int iMachineNumber = 0;
int iFaceIndex = 50;//the only possible parameter value
string sTmpData = "";
int iLength = 0;
{
if (axCZKEM1.GetUserFaceStr(iMachineNumber, sUserID, iFaceIndex, ref sTmpData, ref iLength))//get the face template from the memory
{
}
}
*********************************************************************************************************************
Es posible instanciar dentro de un pcode? Como el siguiente?
#PRAGMA BEGIN DUMP
#include <windows.h>
#include "hbapi.h"
#include "stdio.h"
HB_FUNC( CHECKFACE )
{
int iFace = hb_parni(3);
int iLength = hb_parni(5);
int imaquina = hb_parni(1);
char * sUserID = hb_parc(2);
char * sTmpData = hb_parc(4);
if (axCZKEM1.GetUserFaceStr(iMaquina, sUserID, iFace, ref sTmpData, ref iLength)) // // PREGUNTO COMO INSTANCIO axCZKEM1 PARA USARLO ?
{
MessageBox( GetActiveWindow(),"Ok!", "Test",0x00000040); // Si es Correcto
}
}
************************************************
Agradeceré me apoyes al respecto.
Si necesitas mas información te la puedo hacer llegar
************************************************
Atentamente :
Michael Pavlich
Estimado Ignacio y soporte tecnico:
Disculpen que los moleste nuevamente :
Tengo un problema al activar un driver al importar un Activex...
No me funcionan los métodos donde uso variables contenedoras. Sobre todo con MingW y Harbour
En Xailer se genera la clase de la siguiente forma
CLASS TCZKEM FROM TOcx
// CZKEM Object en Windows
PROPERTY cCLSID INIT "zkemkeeper.ZKEM.1"
...
PUBLISHED:
.....
y uno de los métodos que genera problema es el siguiente :
METHOD GetUserFaceStr( ndwMachineNumber, cdwEnrollNumber, ndwFaceIndex, @cTmpData, @nTmpLength ) AS LOGICAL ID 233
En mis formularios lo Instancio de la siguiente manera:
WITH OBJECT ::oZkem := TCZKEM():New( SELF )
:create()
END
En la llamada al método previa declaración de Variables lo llamo de la siguiente forma
::oZkem:GetUserFaceStr(::nreloj, sUserID, 50, @sTmpData, @iLength)
Cuando Hago la llamada me indica error. y sale del programa ignorando los TRY - CATCH
*******************************************************************************************************************************************************
El proveedor me ha enviado el SDK con ejemplos en Visual y C# que funcionan correctamente.
En C# instancian la clase así :
Al inicio del proyecto:
public zkemkeeper.CZKEMClass axCZKEM1 = new zkemkeeper.CZKEMClass();
Y la función tiene la siguiente forma :
private void LoadFace_Click(object sender, EventArgs e)
string sUserID = "";
string sPassword = "";
int iMachineNumber = 0;
int iFaceIndex = 50;//the only possible parameter value
string sTmpData = "";
int iLength = 0;
{
if (axCZKEM1.GetUserFaceStr(iMachineNumber, sUserID, iFaceIndex, ref sTmpData, ref iLength))//get the face template from the memory
{
}
}
*********************************************************************************************************************
Es posible instanciar dentro de un pcode? Como el siguiente?
#PRAGMA BEGIN DUMP
#include <windows.h>
#include "hbapi.h"
#include "stdio.h"
HB_FUNC( CHECKFACE )
{
int iFace = hb_parni(3);
int iLength = hb_parni(5);
int imaquina = hb_parni(1);
char * sUserID = hb_parc(2);
char * sTmpData = hb_parc(4);
if (axCZKEM1.GetUserFaceStr(iMaquina, sUserID, iFace, ref sTmpData, ref iLength)) // // PREGUNTO COMO INSTANCIO axCZKEM1 PARA USARLO ?
{
MessageBox( GetActiveWindow(),"Ok!", "Test",0x00000040); // Si es Correcto
}
}
************************************************
Agradeceré me apoyes al respecto.
Si necesitas mas información te la puedo hacer llegar
************************************************
Atentamente :
Michael Pavlich