DLL

User avatar
Maurizio
Posts: 705
Joined: Mon Oct 10, 2005 1:29 pm
Contact:

DLL

Post by Maurizio »

Hello Antonio

I have a cash register with Windows CE.NET 4.20
The program works very well.

Now I have to link with a DLL , I need only 3 functions
1) DLL FUNCTION RCHOpen() AS LONG PASCAL FROM "RCHOpen" LIB "RCHGlobe.dll"
2) DLL FUNCTION RCHClose() AS LONG PASCAL FROM "RCHClose" LIB "RCHGlobe.dll"

This 2 functions works and return correctly 0

3) DLL FUNCTION RCHSendData(sIn AS STRING ,sOut AS STRING) AS LONG PASCAL FROM "RCHSendData" LIB "RCHGlobe.dll"

VB.NET Code is = Public Shared Function RCHSendData(ByVal a As String, ByVal b As String) As Int32 )

I call the function

sIn := AnsiToWide("=K")
sOut := AnsiToWide(space(40))
nRet := RchSendData(sIn,sOut)


But return always an error
(I try without AnsiToWide)


Antonio , are you able to give me some clue as to solve this problem ?

Regards MAurizio





















I know that this problem could be due to the cash.
Antonio , are you able to give me some clue as to solve this problem ?
User avatar
Enrico Maria Giordano
Posts: 7355
Joined: Thu Oct 06, 2005 8:17 pm
Location: Roma - Italia
Contact:

Re: DLL

Post by Enrico Maria Giordano »

Maurizio wrote:3) DLL FUNCTION RCHSendData(sIn AS STRING ,sOut AS STRING) AS LONG PASCAL FROM "RCHSendData" LIB "RCHGlobe.dll"
Try AS LPSTR instead of the two AS STRING.

EMG
User avatar
Maurizio
Posts: 705
Joined: Mon Oct 10, 2005 1:29 pm
Contact:

Post by Maurizio »

Ciao Enrico

unfortunately I have already tryed .

Thank Maurizio
User avatar
Enrico Maria Giordano
Posts: 7355
Joined: Thu Oct 06, 2005 8:17 pm
Location: Roma - Italia
Contact:

Post by Enrico Maria Giordano »

It may be that the DLL command is not fully implemented in FWPPC yet.

Antonio?

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

Post by Antonio Linares »

Enrico,

The DLL command is fully working.

Maurizio, what error code do you get ?
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Maurizio
Posts: 705
Joined: Mon Oct 10, 2005 1:29 pm
Contact:

Post by Maurizio »

The Function RCHSendData return -104 , parameters non correctly.

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

Post by Antonio Linares »

Maurizio,

Have you tried to supply the parameters without calling AnsiToWide() ?

Please use LPSTR as Enrico has pointed,
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Maurizio
Posts: 705
Joined: Mon Oct 10, 2005 1:29 pm
Contact:

Post by Maurizio »

Yes I tryed without AnsiToWide() and with LPSTR
but without success

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

Post by Antonio Linares »

Maurizio,

I suggest you that you try a C wrapper, without using DLL FUNCTION to see if that makes a difference.
regards, saludos

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

Post by Antonio Linares »

Code: Select all

#pragma BEGINDUMP

#include <hbapi.h>

HB_FUNC( RCHSENDDATA )
{
   hb_retnl( RCHSendData( hb_parc( 1 ), hb_parc( 2 ) ) );
}

#pragma ENDDUMP
You need to link RCHGlobe.lib.
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Maurizio
Posts: 705
Joined: Mon Oct 10, 2005 1:29 pm
Contact:

Post by Maurizio »

Antonio

I Try

implib.exe RCHGlobe.lib RCHGlobe.DLL
and I have the LIB

but when I link RCHGlobe.lib i had
c:\harbour_ce\lib\RCHglobe.lib : fatal error LNK1136: invalid or corrupt file

Maurizio
User avatar
Maurizio
Posts: 705
Joined: Mon Oct 10, 2005 1:29 pm
Contact:

Post by Maurizio »

Enrico

nella cartella VCE non trovo implib.exe
ho usato quella di Borland
dove posso trovarla quella per MSVCE ?
MAurizio
User avatar
Enrico Maria Giordano
Posts: 7355
Joined: Thu Oct 06, 2005 8:17 pm
Location: Roma - Italia
Contact:

Post by Enrico Maria Giordano »

Usa LINK.EXE con lo switch /IMPLIB (link /? per le varie opzioni).

EMG
User avatar
Maurizio
Posts: 705
Joined: Mon Oct 10, 2005 1:29 pm
Contact:

Post by Maurizio »

Antonio
cann you help me with a problem . I am not able to transform the DLL in the LIB .
Thank to Enrico's help I use this command , but it dosnt work.

c:\vce\bin\link corelibc.lib /LIBPATH:c:\vce\lib\arm /NOLOGO /SUBSYSTEM:WINDOWSCE,4.20 /MACHINE:ARM /DLL /IMPLIB:rchglobe.dll /OUT:rchglobe.lib

Regards MAurizio
Post Reply