devxlogo

GetWindowsDirectory API 16 bit to 32 bit

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 stringdirtext, 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 stringdirtext, ulong textlen) library "KERNEL32.DLL"

devx-admin

Share the Post: