1. Tracy Lamb
  2. PowerBuilder
  3. Thursday, 24 February 2022 19:18 PM UTC

Hi all,

Testing a 64-bit deploy.  I'm wondering if there is a difference between the pbd files or just the exe file?  Are the pbd files interchangeable? Or do I need to rebuild when I'm deploying one or the other?

TIA,
Tracy

 

Accepted Answer
Chris Pollach @Appeon Accepted Answer Pending Moderation
  1. Thursday, 24 February 2022 20:23 PM UTC
  2. PowerBuilder
  3. # Permalink

Hi Tracy;

  NO there is not ... A PDB is a PBD - it is bit neutral! That is a great question!

  I have been swapping the 32 & 64 PBD's between 32 & 64 bit App's since PB 12.6  with no issues. It is actually the App's EXE that contains startup code that determines if the P-CODE within a PBD will be loaded & run in either a 32 or 64 bit mode. So the EXE basically sets the bitness run tone. ;-)

Note: This does not apply to M-Code compiles.

HTH

Regards ... Chris

Comment
  1. Chris Pollach @Appeon
  2. Friday, 25 February 2022 14:29 PM UTC
Hi Everyone; FYI



From the PB documentation ... There is no difference between 32-bit platform and the 64-bit platform if you build the runtime library in Pcode. The same PBD file works for both 32-bit and 64-bit PowerBuilder applications.

https://docs.appeon.com/pb2019/pbug/ch05s11.html



Ticket # 6344 ...



Hi Futoshi,

I double-checked with the development team, 32-bit app and 64-bit app can share a PBD. Both PB 2017 and PB 2019 support it.

If you encounter any problems using PBD in this way, please feel free to let us know. Thanks in advance.

Regards, Ken



Ticket # 1015 (mine) ...



Hi Chris,

The following is added to the documentation:

There is no difference between 32-bit platform and the 64-bit platform if you build the runtime library in Pcode. The same PBD file works for both 32-bit and 64-bit PowerBuilder applications.

Reference link: https://www.appeon.com/support/documents/appeon_online_help/pb2019/pbug/ch05s11.html

Please let us know if we can close this ticket now. Thanks!

Regards, Tom Jiang

  1. Helpful
  1. John Fauss
  2. Friday, 25 February 2022 22:20 PM UTC
Thank you for this information, Chris! Now I can check off the "Learn something new about PB" item on my weekly task list. :-)
  1. Helpful
  1. Chris Pollach @Appeon
  2. Saturday, 26 February 2022 01:16 AM UTC
Always a great day when you learn something new John! ;-)
  1. Helpful
There are no comments made yet.
Tracy Lamb Accepted Answer Pending Moderation
  1. Thursday, 24 February 2022 20:27 PM UTC
  2. PowerBuilder
  3. # 1

I have 45 customers that use 32 bit version. I'm testing 1 customer on 64-bit version as most customers are using 64-bit windows, but not all.  32-bit solution works for both.  But when I have to make changes to a core pbl, it effects all customers.  The reason I'm considering 64-bit builds is for emailing documents. It makes a difference depending on what version of Outlook is on your machine.

~~~Tracy

 

Comment
There are no comments made yet.
John Fauss Accepted Answer Pending Moderation
  1. Thursday, 24 February 2022 19:42 PM UTC
  2. PowerBuilder
  3. # 2

I can't say with any certainty, Tracy.

I know that the memory layout of members within a structure can be different in 64-bit than in 32-bit, and of course, internal memory pointers during execution are 8 bytes in length when running as a 64-bit process instead 4 bytes, but whether or not that translates into a difference in the pseudo-code within a PBD, I don't know.

Why would you want to risk a potentially severe issue?

You have to compile all of the objects in all of the pbl's to construct the .exe in either bitness, so what would you gain?

Regards, John

Comment
  1. mike S
  2. Thursday, 24 February 2022 20:27 PM UTC
actually, you can use pbd's to build an exe. no pbls needed (well, the pbl that holds the application object may be needed)
  1. Helpful
  1. Roland Smith
  2. Friday, 25 February 2022 16:06 PM UTC
Pseudo code's internal pointers to things like object functions or instance variables are indexes that start at either one or zero. That is why when you add an instance variable to an ancestor object, references all get screwed up if you don't add it to the end. It doesn't use memory pointers.
  1. Helpful 1
  1. John Fauss
  2. Friday, 25 February 2022 22:17 PM UTC
Thank you both! I did not know these interesting jewels of PB knowledge.
  1. Helpful
There are no comments made yet.
  • Page :
  • 1


There are no replies made for this question yet.
However, you are not allowed to reply to this question.