1. Venugopal r
  2. PowerBuilder
  3. Thursday, 1 September 2022 17:59 PM UTC

Hi Team,

Please help me understand these issues better by answering the following questions.

In my current application following DLL's are used through global external function option.

USER32.DLL

Kernel32.dll

ADVAPI32.DLL

shell32.dll

Qus#1 - These DLLs would need to be converted to 64 bit versions during the 64 bit upgrade.
             What DLL should I replace instead of using the 32-bit version?

Qus#2  - What driver version do I need to use for SQL server connectivity?

Qus#3  - Should there be anything else important to remember before upgrading to 64-bit?

 

Thanks,

Venu.

 

 

Roland Smith Accepted Answer Pending Moderation
  1. Thursday, 1 September 2022 19:07 PM UTC
  2. PowerBuilder
  3. # 1

The DLL files you mentioned are part of the Windows operating system which will automatically chose the correct one for the bitness of your app.

In general, you need to make sure you follow this rule:

External function declarations and calling scripts must use Longptr as the datatype for any argument or return that is defined as a handle or pointer.

Also make sure to remember that INT and DWORD are ULong in PB. An integer in PB is the same as a SHORT in C++.

Comment
  1. mike S
  2. Thursday, 1 September 2022 19:14 PM UTC
to clarify what roland is saying: even though those dlls have '32' as part of their name, windows does have 64 bit versions of them as well as the 32 bit versions that the name implies.









  1. Helpful
  1. Roland Smith
  2. Thursday, 1 September 2022 19:38 PM UTC
The *32.dll naming convention started when Windows went from 16bit to 32bit. On 64bit Windows, C:\Windows\SysWOW64 has the 32bit DLLs and C:\Windows\System32 has the 64bit DLLs. Exact opposite of the naming.
  1. Helpful
There are no comments made yet.
John Fauss Accepted Answer Pending Moderation
  1. Thursday, 1 September 2022 18:40 PM UTC
  2. PowerBuilder
  3. # 2

Appeon provides a guide to help you migrate an application to 64-bit:

   https://docs.appeon.com/pb2021/migrating_32bit_applications_to_64bit/index.html

There is also a four-part tutorial in the PowerBuilder Tech Articles in the Appeon Community website on how to interface PB applications to the Window API. There is considerable space in this tutorial devoted to the differences between 32-bit and 64-bit API calls. In addition to some argument datatype changes you may run into, there can also be differences in structures passed into or out of some WinAPI functions. Part 4 of the tutorial also includes datatype conversion tables between PB and the Windows API you will likely find helpful.

Here's a link to Part 1:

   https://community.appeon.com/index.php/articles-blogs/tutorials-articles/2-powerbuilder/302-interfacing-pb-applications-with-the-windows-api-part-1

Good luck!
John

Comment
There are no comments made yet.
Chris Pollach @Appeon Accepted Answer Pending Moderation
  1. Thursday, 1 September 2022 18:12 PM UTC
  2. PowerBuilder
  3. # 3

Hi Venu;

  You do not need to change the DLL name but you might need to change the method being called declaration to reflect A) Unicode and B) appropriate 64bit argument type(s).

Regards ... Chris

Comment
There are no comments made yet.
Armeen Mazda @Appeon Accepted Answer Pending Moderation
  1. Thursday, 1 September 2022 18:33 PM UTC
  2. PowerBuilder
  3. # 4

I would first start by reading migration guide and then ask questions: https://docs.appeon.com/pb2022/migrating_32bit_applications_to_64bit/index.html

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