Login | Register   
LinkedIn
Google+
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX


Tip of the Day
Language: PowerBuilder
Expertise: Beginner
Feb 18, 1999

GetWindowsDirectory API 16 bit to 32 bit

Question:
I have migrated an application from 5.0.03 to 6.5 and continue to get this error when pressing the Run button:


Error - 14 - Error opening DLL library kernel.exe for external function
      Window/Menu u_external_function_api
      Object      u_external_function_api
      Event       uf_getwindowsdirectory
      line        1

This application is 16-bit and I am using the external functions for the 16-bit applciation. I have the correct reference for the getwindowsdirectory and it is as follows:


Function uint GetWindowsDirectory (ref string
dirtext, uint textlen) library "kernel.exe"

The one thing I notice is that the kernal.exe is not present on my PC. However, I do not have this problem with my PB 5.0.03 16-bit version on the same PC.

Answer:
This problem is caused by PB5 being a 16-bit application and PB6 being a 32-bit application. You will need to upgrade all of your 16-bit API calls to 32-bit. The Get Windows Directory API call needs to be replaced with the following API call:


Function ulong GetWindowsDirectoryA (ref string
dirtext, ulong textlen) library "KERNEL32.DLL"

DevX Pro
 
Comment and Contribute

 

 

 

 

 


(Maximum characters: 1200). You have 1200 characters left.

 

 

Sitemap
Thanks for your registration, follow us on our social networks to keep up-to-date