[Gs-devel] Calling gsdll_* from Visual Basic
Mike_Lacey at cargill.com
Mike_Lacey at cargill.com
Wed Feb 14 05:42:52 PST 2001
Dear All,
I am writing a VB5 program to batch convert PS files to TIFF images for
faxing.
I have two problems (that I know of):
1 For a limited application such as this, what should be in the
CallBack function? At the moment it is a stub that does nothing at all.
2 The executable grows by 30->70k each time a PS file is converted, am
I calling the gsdll_* functions correctly? I have read the DLL
documentation supplied with GS and *think* I am.... The code that calls
the dll functions is below. I would appreciate comments or suggestions
from anyone, particularly anyone who has used gsdll_* from VB. As far
as I can tell the leak occurs when I convert the PS file (code below)
but I am not convinced as yet.
My environment is:
NT4 SP5
VB5 SP3
GS6.5
Regards
Mike
---
Mike Lacey
Open Systems, Witham St Hughs.
+44 (0)7785 327 710 (mobile)
+44 (0)1522 556 243 (direct line)
+44 (0)1522 556 100 (switchboard)
www.tek-tips.com - Support for I.T. Professionals
' GhostScript function declarations
Private Declare Function gsdll_revision Lib "gsdll32.dll" ( _
lpString As String, _
lpString As String, _
gsrev As Long, _
gsdate As Long _
) As Integer
Private Declare Function gsdll_init Lib "gsdll32.dll" ( _
ByVal lpGsBack As Any, _
ByVal hwnd As Long, _
ByVal argc As Long, _
argv As Long _
) As Integer
Private Declare Function gsdll_execute_begin Lib "gsdll32.dll" () As
Integer
Private Declare Function gsdll_execute_cont Lib "gsdll32.dll" ( _
ByVal pscommand As String, _
ByVal commlen As Long _
) As Integer
Private Declare Function gsdll_execute_end Lib "gsdll32.dll" () As
Integer
Private Declare Function gsdll_exit Lib "gsdll32.dll" () As Integer
this code is called for each PS file converted.
llaArgV(0) = agGetAddressForObject&(Argv0(0))
llaArgV(1) = agGetAddressForObject&(Argv1(0))
llaArgV(2) = agGetAddressForObject&(Argv2(0))
llaArgV(3) = agGetAddressForObject&(Argv3(0))
llaArgV(4) = agGetAddressForObject&(Argv4(0))
llaArgV(5) = agGetAddressForObject&(Argv5(0))
llaArgV(6) = agGetAddressForObject&(Argv6(0))
llaArgV(7) = agGetAddressForObject&(Argv7(0))
llaArgV(8) = agGetAddressForObject&(Argv8(0))
' rcode = gsdll_revision(vbNullString, vbNullString, 0, 0)
rcode = gsdll_init(AddressOf Callback, frmAutoFax.hwnd, 8,
llaArgV(0))
initret = rcode
rcode = gsdll_execute_begin()
rcode = gsdll_execute_end()
rcode = gsdll_exit()
More information about the gs-devel
mailing list