Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

kasa quorion CR21

[es] :: Visual Basic 6 :: kasa quorion CR21

[ Pregleda: 3329 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

drago.zizic
Drago Zizic
programer

Član broj: 284469
Poruke: 6
*.crnagora.net.



Profil

icon kasa quorion CR2110.06.2016. u 00:56 - pre 94 meseci
Kad posaljem poruku na kasu iz MsAccess 2016, napisanu u VBA na kasu javlja mi gresku runtime error 453 can't find dll entry point in qprintfm.dll
Ima li ko ko mi moze pomoci. bio bih zahvalan
 
Odgovor na temu

nessa
Nebojša
Programer
Beograd

Član broj: 10010
Poruke: 60
*.rs.



Profil

icon Re: kasa quorion CR2110.06.2016. u 14:23 - pre 94 meseci
Kakav je VBA kod?
Da li je qprintfm.dll "običan", ActiveX ili .NET dll?
Da li su Access i qprintfm.dll iste "bitnosti" tj. 32/64 bita?
Da li u zaglavlju poruke greške piše Microsoft Visual Basic ili nešto drugo?
 
Odgovor na temu

Shon3i
Beograd

Član broj: 85406
Poruke: 1173
*.dynamic.sbb.rs.



+56 Profil

icon Re: kasa quorion CR2112.06.2016. u 19:58 - pre 94 meseci
Ja bih rekao da je u pitanju API dll, sto znaci da u deklaraciji se poziva na qprintfm.dll. Posto API deklaracije pozivaju iz system32/syswow64 foldera taj dll bi morao da postoji na tim lokacijama da bi moglo da funkcionise.

Inace ne znam o kom dll-u se tacno radi ali svakako bi trebalo da vidis u datoj dokumentaciji kako se pozivaju funkcije...
 
Odgovor na temu

drago.zizic
Drago Zizic
programer

Član broj: 284469
Poruke: 6
*.crnagora.net.



Profil

icon Re: kasa quorion CR2113.06.2016. u 21:30 - pre 94 meseci
Diver je pisan u c++, kao dll. Prema uputstvu sam, koje je dato uz printer, unio u programski kod sledece:
"Dim ModLibReturn As Long

Private Declare Function FreeLibrary Lib "kernel32.dll" (ByVal hLibModule As Long) As Long
Private Declare Function LoadLibrary Lib "kernel32.dll" Alias "LoadLibraryA" (ByVal lpLibFileName As String) As Long

Private Declare Function TransmitPrinterCommand Lib "QPrintFM.dll" (ByVal IPCom As Integer, ByVal Port As String, ByVal BaudRateNr As Long, ByVal Command As String) As String

 Now should implement the LoadLibary function in the form load event like this:

Private Sub Form_Load()
ModLibReturn = LoadLibrary(App.Path & "\QPrintFM.dll")
If ModLibReturn = 0 Then MsgBox "QPrintFM.dll not found", vbCritical
End Sub

 If you load the libary you shouldn’t forget to give it free. In this case you should call the FreeLibrary function on your form termination like this:

Private Sub Form_Terminate()
If ModLibReturn <> 0 Then Call FreeLibrary(ModLibReturn)
End Sub

 Now you can call the QPrintFM.dll in your *.frm file like this:
TransmitPrinterCommand(..., ..., ..., ...)"


ali nece pa nece. ne mogu da vidim gdje sam pogrijesio.
 
Odgovor na temu

drago.zizic
Drago Zizic
programer

Član broj: 284469
Poruke: 6
*.crnagora.net.



Profil

icon Re: kasa quorion CR2113.06.2016. u 21:45 - pre 94 meseci
MsAccess a tim i VBA su 64 a QprintFM je 32. greska 453 je VB greska.
 
Odgovor na temu

Shon3i
Beograd

Član broj: 85406
Poruke: 1173
*.180.230.92.targo.rs.



+56 Profil

icon Re: kasa quorion CR2114.06.2016. u 12:22 - pre 94 meseci
Gresku 453 koju vi dobijate znaci da pokusavate iz tog DLL-a da pozovete neku funkciju koja ne postoji ili se tako ne zove

Nesto vise o samoj gresci: https://msdn.microsoft.com/en-...ary/aa445593%28v=vs.60%29.aspx

A vi mozete da ako imate source tog dll-a ako sam shvatio vi ste pisali? da proverite za sledecu funkciju

Private Declare Function TransmitPrinterCommand Lib "QPrintFM.dll" (ByVal IPCom As Integer, ByVal Port As String, ByVal BaudRateNr As Long, ByVal Command As String) As String

da li se ona u dll-u bas tako zove. Ako ne upotrebom Alias comande mozete ostaviti da vb ima ime funkcije bas TransmitPrinterCommand ali u dll-u da gadja na neko drugo ime recimo standardan primer toga je CopyMemory funkcija koja ima ovakvu deklaraciju


Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)


Sto defakto znaci da vi iz accessa pozivate funkciju koja se zove CopyMemory, medjutim njeno pravo ime unutar Kernel32.dll je RtlMoveMemory. Tako da trebate videti kako se tacno zove i da li u opste postoji.

Mozete koristiti i DependencyWalker program za otvaranje DLL-a, on ce vam pokazati imena svih funkcija u okviru bibiloteke koje su javne.
 
Odgovor na temu

drago.zizic
Drago Zizic
programer

Član broj: 284469
Poruke: 6
*.crnagora.net.



Profil

icon Re: kasa quorion CR2114.06.2016. u 21:17 - pre 94 meseci
Probao sam sve iz Accessa da odstampam fiskalni blok ali ne ide.
Qprintfm.dll sam dobio od proizvodjaca I pisan je u C++, 32 bitna konfiguracija a kod mene je 64 bitno i jos office 2016, jer je tako i na kompjuteru korisnika.
Postupio sam po uputstvu ali je cudno I navodi me na misao da nesto treba jos uraditi, jer kad formiram file koji saljem na stampac uspjesno se odstampa sa test programom (exe verzija pisana u Delphi-ju). Pregledao sam ja sa Depends-om Dll jer znam da je ovaj driver pisan u programu case sensitive I koliko sam video sve je OK upisano. evo dajem i modul za slanje racuna na kasu koji sam napisao a koji ne radi

Option Compare Database
Option Explicit
Public ModLibReturn As Long

Public Declare Function FreeLibrary Lib "kernel32.dll" (ByVal hLibModule As Long) As Long

Public Declare Function LoadLibrary Lib "kernel32.dll" Alias "LoadLibraryA" (ByVal lpLibFileName As String) As Long

Public Declare Function TransmitPrinterCommand Lib "D:\DZSOFT\QPrintFM.dll" (ByVal IPCom As Integer, ByVal Port As String, ByVal BaudRateNr As Long, ByVal Command As String) As String

' STAMPANJE RACUNA NA KASI

Sub q_print(status)

On Error GoTo 17

Dim IPCom As Integer
Dim iPort As String
Dim BaudR As Long

Dim myFile As String, Text As String, Text1 As String, textline As String, posLat As Integer, posLong As Integer
'MsgBox "1-"
IPCom = 0
iPort = "COM3" ' & Chr(0)
BaudR = 57600
Text = "" 'Chr(0)

myFile = "C:\qprint\DRAGO\racun.TXT"
Open myFile For Input As #1
Do Until EOF(1)
Line Input #1, textline
Text = Text & textline '& Text1
' MsgBox "Red= " & Text

Call TransmitPrinterCommand(IPCom, iPort, BaudR, Text)
Text = "" 'Chr(0)

Loop
Close #1
status = True
Exit Sub

17:
MsgBox "greska : " & Err.Number & " opis : " & Err.Description
Exit Sub
End Sub
 
Odgovor na temu

Shon3i
Beograd

Član broj: 85406
Poruke: 1173
*.180.230.92.targo.rs.



+56 Profil

icon Re: kasa quorion CR2115.06.2016. u 13:20 - pre 94 meseci
Malo sam trazio po netu i naleteo na ovo

http://www.jkp-ads.com/articles/apideclarations.asp
https://msdn.microsoft.com/en-...ee691831%28v=office.14%29.aspx

Izgleda da kod 64bitnih aplikacija deklaracije idu drugacije dodaje se PtrSafe , iskreno nisam jos probavao ovako nesto... ali morace da se deklarisu drugacije zato sto ocigledno ima razlika u pozivu izmedju 32 i 64 bitnih aplikacija/dll-ova
 
Odgovor na temu

drago.zizic
Drago Zizic
programer

Član broj: 284469
Poruke: 6
*.crnagora.net.



Profil

icon Re: kasa quorion CR2115.06.2016. u 17:24 - pre 94 meseci
Hvala Vam, probacu pa cu napisati da li sam sto uspio.Kontaktirao sam i Quorion support ali oni, cini mi se, nijesu mnogo zainteresovani.
 
Odgovor na temu

nessa
Nebojša
Programer
Beograd

Član broj: 10010
Poruke: 60
*.dynamic.mbb.telenor.rs.



Profil

icon Re: kasa quorion CR2127.06.2016. u 23:29 - pre 94 meseci
Da li je exe verzija pisana u Delphi-ju 32bitna?
Nisam siguran da se iz 64bitnog koda može direktno pozivati metoda iz 32bitnog dll-a i obrnuto.

https://blog.mattmags.com/2007/06/30/accessing-32-bit-dlls-from-64-bit-code/
http://stackoverflow.com/questions/8367902/calling-a-c-dll-in-64-bit-excel-for-use-in-vba
http://stackoverflow.com/questions/2265023/load-32bit-dll-library-in-64bit-application

Trebalo bi probati iz 32bitnog MsAccess / VBA koda ili pitati Quorion support da li postoji 64bitni qprintfm.dll.
 
Odgovor na temu

[es] :: Visual Basic 6 :: kasa quorion CR21

[ Pregleda: 3329 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.