1. Olan Knight
  2. PowerBuilder
  3. Thursday, 29 July 2021 21:48 PM UTC

PB2019R3, build 2703
Windows 10 64bit platform


There's not much information in the HELP file about creating a 64 bit EXE, or if there is I missed it. Ditto for the Forums.

1. Is there a tutorial somewhere on how to create a 64 bit EXE using PB2019R3?

2. Can someone review what I've got so far?
    This is as far as I could go and the utility opens as a 64 bit EXE, but it will not connect to the database.


a. I compiled the utility as a 64 bit EXE


b. Here's the folder with all of the 64 bit runtime DLLs I think I need:


c. Note the Oracle native driver DLLs.
   Double-click the EXE to startup the utility, then click the button to connect to the Oracle database.


However, this same code works perfectly both when I run it as a 32 bit EXE,
AND.... when I run the 64 bit EXE in DEBUG.

Frankly, I expected the PBORA.DLL to be used, not the Oracle Client Interface (oci) DLL. Or do I need a 64 bit version of this DLL?


Thank You,

Olan



 

 

Accepted Answer
Aart Onkenhout Accepted Answer Pending Moderation
  1. Tuesday, 3 August 2021 12:09 PM UTC
  2. PowerBuilder
  3. # Permalink

Hi Armeen,

As we are experiencing random crashes with our application, which, we think, are due to insufficient memory we are thinking about migrating our application to 64-bit.

As we make use of a number of activex controls, I was wondering if the document you are mentioning will also describe how to deal with activex controls as you cannot run the application from within powerbuilder when you just have 64-bit versions of an activex control installed.

Kind regards,

Aart Onkenhout

PS: we are using a little tool from https://ntcore.com/?page_id=371 to allow our application to use 4GB instead of 2GB of virtual memory. When not using this tool our application crashes a lot more, so that's why we think the crashes are memory related.

Comment
  1. Aart Onkenhout
  2. Thursday, 5 August 2021 05:25 AM UTC
I saw PB2021 isn't beta anymore, so I expected a document about migrating from 32 to 64 bits. Where should I find it?
  1. Helpful
  1. Aart Onkenhout
  2. Friday, 6 August 2021 05:44 AM UTC
Ah, great, Thank you.
  1. Helpful
There are no comments made yet.
John Fauss Accepted Answer Pending Moderation
  1. Thursday, 29 July 2021 21:57 PM UTC
  2. PowerBuilder
  3. # 1

64-bit applications can only use 64-bit compatible DLL's, just as 32-bit applications can only use 32-bit DLL's.

Comment
  1. Miguel Leeuwe
  2. Monday, 2 August 2021 14:53 PM UTC
Hi John,

Any experience using Office 32 bit installs with a 64 bit powerbuilder executable (only as far as OLE goes). I think it would work, just wondering if you've tried that.

regards
  1. Helpful
There are no comments made yet.
Armeen Mazda @Appeon Accepted Answer Pending Moderation
  1. Thursday, 29 July 2021 22:10 PM UTC
  2. PowerBuilder
  3. # 2

Hi Olan, Adding to what John said, there are a number of considerations when generating 64-bit EXE from an app that has worked fine in 32-bit.  We have created a 64-bit migration guide... it's really a migration in sense that you will need to make code changes.  The 64-bit migration guide is posted to the documentation site under PB 2021, but you can use same migration guide also for PB 2019 R3.

Comment
  1. Olan Knight
  2. Thursday, 29 July 2021 22:42 PM UTC
Thank you, Armeen.
  1. Helpful
  1. Armeen Mazda @Appeon
  2. Thursday, 29 July 2021 22:45 PM UTC
You're very welcome.
  1. Helpful
There are no comments made yet.
Chris Pollach @Appeon Accepted Answer Pending Moderation
  1. Thursday, 29 July 2021 23:47 PM UTC
  2. PowerBuilder
  3. # 3

Hi Olan;

   Your missing the 64 bit Oracle DB Client driver  software (personally, I like the "Instant Client" version). Looks like you only have the 32 bit Oracle DB client software installed.

Regards ... Chris

Comment
  1. Miguel Leeuwe
  2. Friday, 30 July 2021 09:50 AM UTC
Exactly. I got that same error on OCI.DLL last week when trying to run a pb 64 bit executable (and forgot to install the 64 bit Oracle client).
  1. Helpful
  1. Olan Knight
  2. Friday, 30 July 2021 22:21 PM UTC
I downloaded the 64 bit Oracle client but did not install it. I would think that if I am to deply my 64 bit exe it should have everything it needs other than the Windows o/s contained in the distributable.



I copied the OCI.DLL into my TESTING folder, the one you see above, and tried to connect again. This time it got past the "Cannot load the oci.dll error" and now says "Failed to get local NLS_LANG charset id".
  1. Helpful
  1. Miguel Leeuwe
  2. Saturday, 31 July 2021 22:48 PM UTC
Hi Olan,

I'm not completey sure, but I think you won't get away by NOT installing and simply copying one DLL which might have many dependencies of other (oracle client) dlls. But you can try of course.

Another important thing is that (once you have both 32 and 64 bit Oracle clients installed), you might have to change your PATH to set the 64 bit client folder before the 32 bit folder.(I think that if you install the 64 bit runtime, it automatically does that).

Also, we use the client "runtime", not the "instant client" because we need some .Net stuff. Not sure if we could get that to work when we'd install the "instant client" and if we might be able to add the needed .Net functionality. (This is just the way our IT does it).

regards
  1. Helpful
There are no comments made yet.
Olan Knight Accepted Answer Pending Moderation
  1. Wednesday, 4 August 2021 13:15 PM UTC
  2. PowerBuilder
  3. # 4

PB2019R3 build 2703
Windows 64 bit platform


Thanks for the tip on the 4GB Patch. This sounded marvelous!
Sadly, I was not able to get it to run.

1)  Download the ZIP file
2) Unzip it using WinZip.
3) Right click on the EXE and select "Run as administrator:

Comment
  1. Aart Onkenhout
  2. Wednesday, 4 August 2021 14:28 PM UTC
Just downloaded the exe again. After unzipping I could doubleclick it and it asks for the exe file to patch. Does it ask for an executable? Is the exe you want to patch readonly perhaps?
  1. Helpful
  1. Olan Knight
  2. Thursday, 5 August 2021 13:30 PM UTC
I'll try this again today both with e extension ".exe" on all apps AND as a batch file.

  1. Helpful
  1. Olan Knight
  2. Thursday, 5 August 2021 13:55 PM UTC
I downloaded the EXE again and tried again.

This time it worked:

1) doublce-click on the 4gb_fix.exe

2) A FindFile window opens and is labeled "Select executable...".

3) I selected the EXE to be patched.

4) Msg displayed "Executable patched".



And now I'm running the 1 hour+ long test to see if that resolved the issue! :)



Thanks again, Aart!
  1. Helpful
There are no comments made yet.
Olan Knight Accepted Answer Pending Moderation
  1. Wednesday, 4 August 2021 13:42 PM UTC
  2. PowerBuilder
  3. # 5

What am I doing wrong?!?

I created a TESTING folder on my C drive.
Copied all of the files for the utility into that folder.
Added the 4GB_PATCH.EXE into the folder.
Opened a CMD prompt as administrator.
I tried calling the UFM utility both with and without double quotes around the EXE name - both calls failed.

Comment
  1. Miguel Leeuwe
  2. Thursday, 5 August 2021 04:43 AM UTC
Hi,

Maybe the name of your EXE file should include ".EXE" at the end?



4gb_patch "usage_file_management_v110.EXE



regards.
  1. Helpful
There are no comments made yet.
Olan Knight Accepted Answer Pending Moderation
  1. Thursday, 5 August 2021 15:03 PM UTC
  2. PowerBuilder
  3. # 6

Hey, Aart -

   IT WORKS!!!!


   I ran the 4GB_FIX.EXE utility against my small utility and not only was my space issue resolved, the performance nearly tripled in speed!

   Thank you again for pointing me to this amazing FIX utility!


Later -

Olan


*Image from the online comic "Girl Genius". If you've not read it, you should!  :)
https://www.girlgeniusonline.com/comic.php?date=20021104

Comment
  1. Aart Onkenhout
  2. Thursday, 5 August 2021 16:00 PM UTC
Good to hear! Fine it works now.
  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.