DLL32 FW24 vs FW916
Posted: Tue Nov 21, 2017 7:03 pm
Estimados,
Estamos haciendo una llamanda a "winfis32.dll" que es para el manejo de impresoras fiscales hasar (argentina), que con FW24 funciona perfecto, pero la misma DLL ejecutada con el programa compilado con FW916 devuelve otros valores en las funciones.
// Listado de funciones de WinFis32.dll
DLL32 FUNCTION OpenComFiscal( nCom AS _INT, nMode AS _INT ) AS _INT PASCAL LIB "winfis32.dll"
DLL32 FUNCTION MandaPaqueteFiscal( nHandler AS _INT, cBuffer AS LPSTR ) AS _INT PASCAL LIB "winfis32.dll"
DLL32 FUNCTION UltimaRespuesta( nHandler AS _INT, cBuffer AS LPSTR ) AS _INT PASCAL LIB "winfis32.dll"
DLL32 FUNCTION CloseComFiscal( nHandler AS _INT ) AS VOID PASCAL LIB "winfis32.dll"
DLL32 FUNCTION ReOpenComFiscal( nCom AS _INT ) AS _INT PASCAL LIB "winfis32.dll"
DLL32 FUNCTION InitFiscal( nHandler AS _INT ) AS _INT PASCAL LIB "winfis32.dll"
DLL32 FUNCTION VersionDLLFiscal( ) AS _INT PASCAL LIB "winfis32.dll"
DLL32 FUNCTION BusyWaitingMode( nMode AS _INT ) AS VOID PASCAL LIB "winfis32.dll"
DLL32 FUNCTION CambiarVelocidad( nPortNumber AS _INT, nNewSpeed AS LONG) AS VOID PASCAL LIB "winfis32.dll"
DLL32 FUNCTION SearchPrn( nHandler AS _INT ) AS LONG PASCAL LIB "winfis32.dll"
DLL32 FUNCTION ProtocolMode( nMode AS _INT ) AS _INT PASCAL LIB "winfis32.dll"
DLL32 FUNCTION SetCommandRetries( nRetries AS _INT ) AS _INT PASCAL LIB "winfis32.dll"
DLL32 FUNCTION Abort( nPortNumber AS _INT ) AS VOID PASCAL LIB "winfis32.dll
Si bien la llamada a la apertura del COM devuelve el mismo valor, o sea el handle, en los dos programas, al hacer las llamadas a las demas funciones con ese handle, nos devuelve valores distintos. Por ejemplo con SearchPrn() que tiene que devolver la velocidad del puerto y en FW24 devuelve 9600 y el 916 devuelve -1.
La verdad es que no sabemos por donde atacar este problema ya que al tratarse de una llamada a las funciones de una DLL no hay mucho o nada que cambiar entre dos versiones de FW.
Saludos
Héctor
Estamos haciendo una llamanda a "winfis32.dll" que es para el manejo de impresoras fiscales hasar (argentina), que con FW24 funciona perfecto, pero la misma DLL ejecutada con el programa compilado con FW916 devuelve otros valores en las funciones.
// Listado de funciones de WinFis32.dll
DLL32 FUNCTION OpenComFiscal( nCom AS _INT, nMode AS _INT ) AS _INT PASCAL LIB "winfis32.dll"
DLL32 FUNCTION MandaPaqueteFiscal( nHandler AS _INT, cBuffer AS LPSTR ) AS _INT PASCAL LIB "winfis32.dll"
DLL32 FUNCTION UltimaRespuesta( nHandler AS _INT, cBuffer AS LPSTR ) AS _INT PASCAL LIB "winfis32.dll"
DLL32 FUNCTION CloseComFiscal( nHandler AS _INT ) AS VOID PASCAL LIB "winfis32.dll"
DLL32 FUNCTION ReOpenComFiscal( nCom AS _INT ) AS _INT PASCAL LIB "winfis32.dll"
DLL32 FUNCTION InitFiscal( nHandler AS _INT ) AS _INT PASCAL LIB "winfis32.dll"
DLL32 FUNCTION VersionDLLFiscal( ) AS _INT PASCAL LIB "winfis32.dll"
DLL32 FUNCTION BusyWaitingMode( nMode AS _INT ) AS VOID PASCAL LIB "winfis32.dll"
DLL32 FUNCTION CambiarVelocidad( nPortNumber AS _INT, nNewSpeed AS LONG) AS VOID PASCAL LIB "winfis32.dll"
DLL32 FUNCTION SearchPrn( nHandler AS _INT ) AS LONG PASCAL LIB "winfis32.dll"
DLL32 FUNCTION ProtocolMode( nMode AS _INT ) AS _INT PASCAL LIB "winfis32.dll"
DLL32 FUNCTION SetCommandRetries( nRetries AS _INT ) AS _INT PASCAL LIB "winfis32.dll"
DLL32 FUNCTION Abort( nPortNumber AS _INT ) AS VOID PASCAL LIB "winfis32.dll
Si bien la llamada a la apertura del COM devuelve el mismo valor, o sea el handle, en los dos programas, al hacer las llamadas a las demas funciones con ese handle, nos devuelve valores distintos. Por ejemplo con SearchPrn() que tiene que devolver la velocidad del puerto y en FW24 devuelve 9600 y el 916 devuelve -1.
La verdad es que no sabemos por donde atacar este problema ya que al tratarse de una llamada a las funciones de una DLL no hay mucho o nada que cambiar entre dos versiones de FW.
Saludos
Héctor