PrintFile.p ... does any one fixed it for win 64? - Forum - OpenEdge General - Progress Community

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

 Forum

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

This question is answered

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

Verified Answer
  • 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
  • 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.

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

  • 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.

  • Thanks!!!!!

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

    Thanks.  God bless you.

    Jorge Octavio O.

  • Thanks!!!!!

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

    Thanks.  God bless you.

    Jorge Octavio O.

  • printfile64.zip

    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.

  • 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?

  • 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(...).
  • Thanks!!!!