-----------------------------------------------
GO TO VFP ADVANCED (X64)
January 2025
-----------------------------------------------
CCB
1. The VFP Advanced (x64) Project.
Usually, recommend to create the VFP Advanced (x64) project in another folder.
For example,
If we create the VFP Advanced 32-bit (or VFP 9.0) project in the folder C:\Myproject,
we can create the VFP Advanced (x64) project in another folder C:\Myproject64.
2. The DECLARE Statements.
In VFP 9.0 (and before), there is no difference for the INTEGER data type and the LONG data type, they are 32-bit integer.
In VFP Advanced (x64), for the HANDLE data type and the size_t data type, recommend to use the LONG data type instead of the INTEGER data type.
For example,
BOOL WINAPI OpenProcessToken(
_In_ HANDLE ProcessHandle,
_In_ DWORD DesiredAccess,
_Out_ PHANDLE TokenHandle
);
Sometimes the following code can not run fine in VFP Advanced (x64):
DECLARE INTEGER OpenProcessToken IN win32api ;
INTEGER ProcessHandle,;
INTEGER DesiredAccess,;
INTEGER @TokenHandle
Recommend to use the following code:
DECLARE INTEGER OpenProcessToken IN win32api ;
LONG ProcessHandle,;
INTEGER DesiredAccess,;
LONG @TokenHandle
For more details for the DECLARE statement,
please refer to the file tools\xcheckdeclare64\readme.txt.
There is a good news,
ALL DECLARED FUNCTIONS IN THE FOLLOWING DLLS CAN WORK FINE!
===========================================================
KERNEL32.DLL 799
USER32.DLL 639
GDI32.DLL 371
WINSPOOL.DRV 196
COMDLG32.DLL 27
COMCTL32.DLL 100
ADVAPI32.DLL 608
SHELL32.DLL 232
SHLWAPI.DLL 310
IMM32.DLL 81
OLEDLG.DLL 21
OLEACC.DLL 15
URLMON.DLL 71
HLINK.DLL 28
MSVCR100.DLL 135
MSVCRT.DLL 729
VERSION.DLL 12
MPR.DLL 43
OLEAUT32.DLL 392
OLE32.DLL 327
WINMM.DLL 207
GDIPLUS.DLL 609
MAPI32.DLL 130
ODBC32.DLL 136
ODBCCP32.DLL 56
UXTHEME.DLL 48
WININET.DLL 226
WS2_32.DLL 116
NTDLL.DLL 1169
VFPA.EXE 3
VFPAR.DLL 11
VFPAT.DLL 11
CTL3D32.DLL 9
DWMAPI.DLL 30
MSSPELL.DLL 16
SCC.DLL 38
VBAME.DLL 11
VSPERF100.DLL 8
TOTAL 7970 FUNCTIONS.
For the declared functions in the other dlls, we must do more to check the data type.
3. The SET LIBRARY TO Statements.
1, The Visual FoxPro Tools Library (foxtools.fll)
Some functions such as RegFn32(), RegFn(), CallFn() are not supported, please use the DECLARE statement to do it.
2, The Visual FoxPro FoxDoc Support Library (fd3.fll)
All functions are supported.
3, The Visual FoxPro Wizard Support Libary (wizard.fll)
All functions are supported.
4, All functions in VFP C++ Compiler (x64) are supported.
5, All functions in VFPX64.fll and dFPUG64.fll are supported.
6, All functions in vfp2c64.fll are supported.
7, All functions in libhpdf64.dll and libpng1664.dll are supported.
8, All functions in zlib64.dll are supported.
For the other VFP API libraries,
if we have the C/C++ source code of the VFP API libraries,
we can use the VFP Advanced (x64) Library Construction Kit to build the 64-bit VFP API libraries,
this is the best way to build the 64-bit VFP API libraries.
4. The ActiveX Controls.
There is no the MS Common Controls 64-bit version such as TreeView, ListView, DateTimePicker, etc.,
so we must use the third-party ActiveX controls 64-bit version, for example, the DBI ActiveX controls (https://www.dbi-tech.com),
or build the ActiveX controls 64-bit version ourselves.
|