Re: Another Win32lib problem, and this may not be fixable.
- Posted by ChrisB (moderator) Aug 11, 2023
- 1411 views
Hmmm, I guess I should really do something about printing on Phix. About 20 years ago I wrote a rather ambitious Print Preview module, win32lib-based, maybe I could try resurrecting that.
I pretty much lost track of things back when printers started getting connected via USB ports... I have no idea where this may take us but this needs solving properly, so let's just get stuck in.
Have you tried running your program on Phix? Is there any source code available?
- not yet, its win32lib though, so the source code's there. Will try on Phix.
Have you tried trace(3), see if that drops any clues where to start looking?
- No
Can we be sure that none of the define_c_func/proc/var() are yielding -1?
- Yes - it's the dll/winspool.drv that's crashing - if theres a 32 bit (legacy) winspool.drv
Can you print a test page via, say, Notepad? It makes sense to rule out hardware/driver issues.
- Yes, the printer works fine, and prints from programs written for win10, using the new printer dialogue. (see the google link above, win 10 has modern and legacy print dialogues) Older 32bit programs using the legacy printer dialogue also crash (or as windows says, 'not responding')
Are there any win32lib printing docs worth reading to be had?
- not really, it all seems to be handled through winspool32.ex, which actually has a fairly limited function list. Plus I've printed out returns from the opening of winspool.drv, and they look reasonable, but the freeze happens when you try to _call_ a function or procedure within the .drv (=dll).
Is there anything on www.rosettacode.org or board.flatassembler.net or similar that might be useful? Sure, I'll have a scout around myself, but extra eyes cannot hurt and anything that can easily be built and works would be a huge help. Separate examples for Windows and Linux are wanted, at least here.
- Will carry on searching through there as well. As I said was thinking about stripping out the printer functions. There seems to be two camps - those that cannot print (me), and possibly those that have more modern printers, where win32 lib.
- In fact lets have a poll, if your win32 lib runs test programs, do you have an old or modern (meant for win 10) printer?
Cheers
Chris