PrintFile.p ... does any one fixed it for win 64?

Posted by OctavioOlguin on 27-Jul-2018 19:29

Greetings.

Time has come to old tools to get revamped....

all my system's output is based on printfile.p from good'ol Jurjen Dijkstra.  But on 11.7 it broke, as per 

knowledgebase.progress.com/.../Windows-API-call-fails-with-error-13712-in-11-7-64-bit

I've try all datatypes inside it, but haven't been able to use it on windows client 64.

Does somebody got a clue?

TIA

Jorge

Posted by Matt Gilarde on 01-Aug-2018 11:19

You can use the PROCESS-ARCHITECTURE function to determine whether the AVM is 32 or 64 bits.

IF PROCESS-ARCHITECTURE = 32 THEN
    RUN printfile.p(...).
ELSE
    RUN printfile64.p(...).

All Replies

Posted by Matt Gilarde on 30-Jul-2018 07:39

If nobody has done it yet, you'll have to look at Microsoft's documentation for each external procedure declared in printfile.i to see which parameters need to be changed from LONG to INT64. You'll also have to add up the sizes of the structures passed to the external procedures (the numbers passed to SET-SIZE) and recalculate the offsets passed to the GET- and PUT- functions. It's not something you can do without knowledge of Windows functions and C datatypes.

Posted by OctavioOlguin on 31-Jul-2018 09:08

wich is the case.   not enough knowledge about win32 to accomplish that :(

Posted by Matt Gilarde on 31-Jul-2018 09:25

I can take a look at it when I have a bit of free time if nobody pipes up to say that they've done it already. It could be a week or two though.

Posted by OctavioOlguin on 31-Jul-2018 09:36

Thanks!!!!!

I'll look forward to see it!!!!

Thanks.  God bless you.

Jorge Octavio O.

Posted by OctavioOlguin on 31-Jul-2018 09:36

Thanks!!!!!

I'll look forward to see it!!!!

Thanks.  God bless you.

Jorge Octavio O.

Posted by Matt Gilarde on 01-Aug-2018 07:55

[View:/cfs-file/__key/communityserver-discussions-components-files/26/printfile64.zip:320:240]

I looked at it this morning and it turned out to be really easy to do. I have attached a zip file with the 64-bit version.

Posted by OctavioOlguin on 01-Aug-2018 11:09

Thanks!!!!!    I'll take time to learn changes....

But now, is this file suitable for 32 bits "client networking" product?

I remember seen this last days, a conditional compiling, but it is that... compiling...

I guess that on code should put some

IF ____ is 64bits____  THEN

   RUN  printfile.p(..).

ELSE

  RUN PintFile64.p(..).

being ___is 64bits_____

something like

knowledgebase.progress.com/.../000054631

or

knowledgebase.progress.com/.../how-to-determine-the-bitness-of-windows

Am I correct?

Posted by Matt Gilarde on 01-Aug-2018 11:19

You can use the PROCESS-ARCHITECTURE function to determine whether the AVM is 32 or 64 bits.

IF PROCESS-ARCHITECTURE = 32 THEN
    RUN printfile.p(...).
ELSE
    RUN printfile64.p(...).

Posted by OctavioOlguin on 01-Aug-2018 11:20

Thanks!!!!

This thread is closed