-------------------------------------------------- VFP C++ COMPILER FREQUENTLY ASKED QUESTIONS January 2024 -------------------------------------------------- (C)SHENZHEN BAIYUJIA SOFTWARE TECHNOLOGY CO., LTD. 1. Download the demo version: 1, Download VFP C++ Compiler [DEMO VERSION]: http://www.baiyujia.com/f_downloadproc_vc.asp Please input ok to start downloading files. 2, Please use 7-Zip to decompress the file, download 7-Zip: http://www.7-zip.org 2. "C/C++ compiler error" Cause Analysis: 1, For Visual C++ 6.0 (or Visual Studio 98), please install Visual C++ 6.0 Processor Pack. Please install Visual C++ 6.0 SP5 first, and then install Visual C++ 6.0 Processor Pack, and then install Visual C++ 6.0 SP6. If we have not installed Visual C++ 6.0 Processor Pack, please set Data Alignment to 1 byte. 2, When C/C++ compiler file selection FOXRUN8\MAKE.BAT (Visual C++ 8.0): Because of Visual C++ 8.0 (and later) on Windows XP (and later) under the change of the VC runtime files deployment methods: for the previous version we can copy VC runtime files to the C:\Windows\System32 folder, and now need to install Microsoft .NET Framework 2.0 or Microsoft Visual C++ 2005 Redistributable Package, VC runtime files on the C:\Windows\Winsxs folder, Multiple versions can exist. The application compiled with Visual C++ 8.0 need to install Microsoft .NET Framework 2.0 or Microsoft Visual C++ 2005 Redistributable Package to run. If we would like to compile into a GREEN-SOFTWARE, need to copy MICROSOFT.VC80.CRT.MANIFEST and MSVCR80.DLL to the application folder, and the VC runtime Version number must be right, otherwise, should not start the application. For VFP applications developer, using Visual C++ 8.0 compiler or Visual C++ 7.0/6.0 compiler there are no major distinction. If we are familiar with .NET development tools, we can use Visual C++ 8.0 compiler, please fringe Microsoft .NET Framework 2.0 or Microsoft Visual C++ 2005 Redistributable Package. If we are not very familiar with .NET development tools, it is recommended to use Visual C++ 7.0/6.0 compiler. There is no direct contact for C/C++ compiler version and VFP version. In other words, we can use VFP 6.0 to develope applications, and we can use Visual C++ 8.0 compiler to compile the dynamic link library; we can use VFP 8.0 to develope applications, and we can use Visual C++ 6.0 compiler to compile the dynamic link library too. 3. The compile speed: Test 1: AMD Sempron 2600+ 1.6G, 512MB memory, Windows 2000, VFP C++ Compiler compiled and generated the 20MB of EXE file and the 20MB of DLL file required about 10 minutes. Test 2: Intel Core 2 Duo P7350 2.0G, 2GB memory, Windows XP, VFP C++ Compiler compiled and generated the 20MB of EXE file and the 50MB of DLL file required for about 30 minutes. Test 3: Intel Core 2 Duo P7350 2.0G, 2GB memory, Windows XP, VFP C++ Compiler compiled and generated the 60MB of EXE file and the 300MB of DLL file required for about 6 hours. Visual C++ 6.0/7.0/8.0/9.0/10.0 compiler compile time ratio of about 9.5:1.0:1.5:1.2:1.2, therefore, recommend to use Visual C++ 7.0 compiler to compile to get faster speed. Demo version have not Optimized, the official version can get faster speed. 4. Runtime library files: -------------------------------------------------------------------------------------------- | VFP \ VC | VC 6.0 | VC 7.0 | VC 8(9).0 | VC 10(11,12) | -------------------------------------------------------------------------------------------- | VFP 6.0 | VFP6R.DLL | VFP6R.DLL | VFP6R.DLL | VFP6R.DLL | | | VFP6RENU.DLL | VFP6RENU.DLL | VFP6RENU.DLL | VFP6RENU.DLL | | | VFPCORE.DLL | VFPCORE.DLL | VFPCORE.DLL | VFPCORE.DLL | | | | MSVCR70.DLL | MSVCR8(9)0.DLL | MSVCR100.DLL | | | | | MICROSOFT.VC8(9)0.CRT.MANIFEST | (MSVCR110.DLL) | | | | | | (MSVCR120.DLL) | -------------------------------------------------------------------------------------------- | VFP 7.0 | VFP7R.DLL | VFP7R.DLL | VFP7R.DLL | VFP7R.DLL | | | VFP7RENU.DLL | VFP7RENU.DLL | VFP7RENU.DLL | VFP7RENU.DLL | | | VFPCORE.DLL | VFPCORE.DLL | VFPCORE.DLL | VFPCORE.DLL | | | MSVCR70.DLL | MSVCR70.DLL | MSVCR70.DLL | MSVCR70.DLL | | | | | MSVCR8(9)0.DLL | MSVCR100.DLL | | | | | MICROSOFT.VC8(9)0.CRT.MANIFEST | (MSVCR110.DLL) | | | | | | (MSVCR120.DLL) | -------------------------------------------------------------------------------------------- | VFP 8.0 | VFP8R.DLL | VFP8R.DLL | VFP8R.DLL | VFP8R.DLL | | | VFP8RENU.DLL | VFP8RENU.DLL | VFP8RENU.DLL | VFP8RENU.DLL | | | VFPCORE.DLL | VFPCORE.DLL | VFPCORE.DLL | VFPCORE.DLL | | | MSVCR70.DLL | MSVCR70.DLL | MSVCR70.DLL | MSVCR70.DLL | | | | | MSVCR8(9)0.DLL | MSVCR100.DLL | | | | | MICROSOFT.VC8(9)0.CRT.MANIFEST | (MSVCR110.DLL) | | | | | | (MSVCR120.DLL) | -------------------------------------------------------------------------------------------- | VFP 9.0 | VFP9R.DLL | VFP9R.DLL | VFP9R.DLL | VFP9R.DLL | | | VFP9RENU.DLL | VFP9RENU.DLL | VFP9RENU.DLL | VFP9RENU.DLL | | | VFPCORE.DLL | VFPCORE.DLL | VFPCORE.DLL | VFPCORE.DLL | | | MSVCR71.DLL | MSVCR71.DLL | MSVCR71.DLL | MSVCR71.DLL | | | | MSVCR70.DLL | MSVCR8(9)0.DLL | MSVCR100.DLL | | | | | MICROSOFT.VC8(9)0.CRT.MANIFEST | (MSVCR110.DLL) | | | | | | (MSVCR120.DLL) | -------------------------------------------------------------------------------------------- | VFP Adv. | VFPAR.DLL | VFPAR.DLL | VFPAR.DLL | VFPAR.DLL | | | VFPCORE.DLL | VFPCORE.DLL | VFPCORE.DLL | VFPCORE.DLL | | | MSVCR71.DLL | MSVCR71.DLL | MSVCR71.DLL | MSVCR71.DLL | | | | MSVCR70.DLL | MSVCR8(9)0.DLL | MSVCR100.DLL | | | | | MICROSOFT.VC8(9)0.CRT.MANIFEST | (MSVCR110.DLL) | | | | | | (MSVCR120.DLL) | -------------------------------------------------------------------------------------------- | VFP Adv. | N/A | N/A | N/A | VFPAR.DLL | | (x64) | | | | VFPCORE.DLL | | | | | | MSVCR100.DLL | | | | | | (MSVCR110.DLL) | | | | | | (MSVCR120.DLL) | -------------------------------------------------------------------------------------------- If using Visual C++ 8.0 compiler, need to copy MICROSOFT.VC80.CRT.MANIFEST and MSVCR80.DLL to the application folder. If using Visual C++ 9.0 compiler, need to copy MICROSOFT.VC90.CRT.MANIFEST and MSVCR90.DLL to the application folder. Other runtime library files can be copied to: 1, the application folder, 2, or the Windows System folder, 3, or the C:\Program Files\Common Files\Microsoft Shared\VFP folder. IMPORTANT NOTE: 1, The program compiled with Visual C++ 10.0 only run on Windows XP SP2 or later. 2, The program compiled with Visual C++ 11.0 only run on Windows Vista or later. 3, The program compiled with Visual C++ 11.0 Update 1 or later only run on Windows XP SP2 or later. 4, The program compiled with Visual C++ 12.0 only run on Windows XP SP2 or later. 5. "<PROJECT-NAME>.DLL is not a Visual Foxpro EXE file" problem: Please refer to the "C/C++ compiler error" Cause Analysis. "<PROJECT-NAME>.DLL is not a Visual Foxpro EXE file" solving methods: If using Visual C++ 8.0 compiler, we need to install Microsoft .NET Framework 2.0 or install Microsoft Visual C++ 2005 Redistributable Package or copy MICROSOFT.VC80.CRT.MANIFEST and MSVCR80.DLL to the application folder. If using Visual C++ 9.0 compiler, we need to install Microsoft .NET Framework 3.5 or install Microsoft Visual C++ 2008 Redistributable Package or copy MICROSOFT.VC90.CRT.MANIFEST and MSVCR90.DLL to the application folder. 6. "Visual Foxpro can not start. Could not load resources" Cause Analysis: VFP9R.DLL search order: 1, the application folder, 2, the registry (HKEY_CLASSES_ROOT\VisualFoxProRuntime.9\Shell\Open\Command), 3, the Windows System folder. VFP9RENU.DLL search order: First LoadLibrary VFP9RENU, search order: 1, the application folder, 2, the Windows system folder, 3, PATH environment variable to the specified folder. If LoadLibrary VFP9RENU failure, re-search: 4, the registry (HKEY_CLASSES_ROOT\VisualFoxProRuntime.9\Shell\Open\Command). The different of VFP9R.DLL and VFP9RENU.DLL search order are the main cause. The most common case is: ----------------------------------------------------------------------- | VFP runtime location | VFP9R.DLL | VFP9RENU.DLL | matching results | ----------------------------------------------------------------------- | Applications folder | 1)x | 1)x | | ----------------------------------------------------------------------- | Registry | 2)ok | | | ----------------------------------------------------------------------- | Windows system folder | | 2)ok | error | ----------------------------------------------------------------------- In other words, in the registry search VFP9R.DLL, but in the Windows system folder search to VFP9RENU.DLL first, if these two file versions are different, it will happen "Visual Foxpro can not start. Could not load resources" error! "Visual Foxpro can not start. Could not load resources" solving methods: By default, the VFP runtime files installed to: C:\Program Files\Common Files\Microsoft Shared\VFP Recommend copy the VFP runtime files to: C:\Windows\System32 folder To avoid any possible "Visual Foxpro can not start. Could not load resources" error. VFP C++ Compiler has changed VFP9R.DLL search order to: 1, the application folder, 2, the Windows System folder, 3, the registry (HKEY_CLASSES_ROOT\VisualFoxProRuntime.9\Shell\Open\Command). Then VFP9R.DLL and VFP9RENU.DLL search order are same, to avoid "Visual Foxpro can not start. Could not load resources" error. 7. Compatibility: Windows 98: happen "API call caused an exception" error sometimes. Windows 2000: happen "API call caused an exception" error sometimes. Windows XP: no error. Windows 8.1 and Windows Defender, If VFP C++ Compiler run very slow, please set the Excluded files and locations to: 1, the VFP C++ Compiler installed folder (C:\Program Files\Baiyujia VFP C++ Compiler), 2, the application folder, 3, the temporary files folder (C:\Users\xxx\AppData\Local\Temp). 8. The compatible problems for the antivirus programs: If we set: /VCENCRYPT=OFF does not Encrypt Executable File /VCPACKEXE=OFF does not Compress Executable File /VFPLIB=OFF does not Include VFP Support Library we get the following scan results from the website www.virustotal.com: --------------------------------------------------------------------------- | VFP VERSION | SCAN RESULTS | --------------------------------------------------------------------------- | VFP 6.0 | Clean. | --------------------------------------------------------------------------- | VFP 7.0 | WhiteArmor: Malware.HighConfidence | --------------------------------------------------------------------------- | VFP 8.0 | Clean. | --------------------------------------------------------------------------- | VFP 9.0 | Clean. | --------------------------------------------------------------------------- | VFP Advanced 32-bit | Cylance: Unsafe | --------------------------------------------------------------------------- | VFP Advanced 64-bit | Cylance: Unsafe | --------------------------------------------------------------------------- If we set: /VCENCRYPT=ON Encrypt Executable File /VCPACKEXE=OFF does not Compress Executable File /VFPLIB=OFF does not Include VFP Support Library we get the following scan results from the website www.virustotal.com: --------------------------------------------------------------------------- | VFP VERSION | SCAN RESULTS | --------------------------------------------------------------------------- | VFP 6.0 | Clean. | --------------------------------------------------------------------------- | VFP 7.0 | Cylance: Unsafe | | | WhiteArmor: Malware.HighConfidence | --------------------------------------------------------------------------- | VFP 8.0 | Ikarus: Virus.Win32.Hezhi | --------------------------------------------------------------------------- | VFP 9.0 | Cylance: Unsafe | --------------------------------------------------------------------------- | VFP Advanced 32-bit | Cylance: Unsafe | --------------------------------------------------------------------------- | VFP Advanced 64-bit | Cylance: Unsafe | --------------------------------------------------------------------------- If we set: /VCENCRYPT=ON Encrypt Executable File /VCPACKEXE=ON Compress Executable File /VFPLIB=OFF does not Include VFP Support Library we get the following scan results from the website www.virustotal.com: --------------------------------------------------------------------------- | VFP VERSION | SCAN RESULTS | --------------------------------------------------------------------------- | VFP 6.0 | Avira: TR/Crypt.XPACK.Gen | | | Cylance: Unsafe | | | Sophos ML: heuristic | | | TheHacker: Posible_Worm32 | | | TrendMicro-HouseCall: PAK_Generic.005 | | | WhiteArmor: Malware.HighConfidence | --------------------------------------------------------------------------- | VFP 7.0 | Avast: Win32:Metaphor | | | AVG: Win32:Metaphor | | | Avira: TR/Crypt.XPACK.Gen | | | Cylance: Unsafe | | | Sophos ML: heuristic | | | TheHacker: Posible_Worm32 | | | TrendMicro-HouseCall: PAK_Generic.005 | | | WhiteArmor: Malware.HighConfidence | --------------------------------------------------------------------------- | VFP 8.0 | Avast: Win32:Metaphor | | | AVG: Win32:Metaphor | | | Cylance: Unsafe | | | Ikarus: Virus.Win32.Hezhi | | | TheHacker: Posible_Worm32 | | | TrendMicro-HouseCall: PAK_Generic.005 | --------------------------------------------------------------------------- | VFP 9.0 | Cylance: Unsafe | | | TheHacker: Posible_Worm32 | | | TrendMicro-HouseCall: PAK_Generic.005 | --------------------------------------------------------------------------- | VFP Advanced 32-bit | Cylance: Unsafe | --------------------------------------------------------------------------- | VFP Advanced 64-bit | Cylance: Unsafe | | | eGambit: Unsafe.AI_Score_81% | --------------------------------------------------------------------------- If we set: /VCENCRYPT=ON Encrypt Executable File /VCPACKEXE=OFF does not Compress Executable File /VFPLIB=ON Include VFP Support Library we get the following scan results from the website www.virustotal.com: --------------------------------------------------------------------------- | VFP VERSION | SCAN RESULTS | --------------------------------------------------------------------------- | VFP 6.0 | AhnLab-V3: Backdoor/Win32.Trojan Horse.C2214714 | | | Cylance: Unsafe | | | Endgame: malicious (high confidence) | | | SentinelOne: static engine - malicious | | | Sophos ML: heuristic | | | WhiteArmor: Malware.HighConfidence | --------------------------------------------------------------------------- | VFP 7.0 | AhnLab-V3: Backdoor/Win32.Trojan Horse.C2214714 | | | Avast: Win32:Metaphor | | | AVG: Win32:Metaphor | | | Cylance: Unsafe | | | Endgame: malicious (high confidence) | | | Sophos ML: heuristic | --------------------------------------------------------------------------- | VFP 8.0 | Avast: Win32:Metaphor | | | AVG: Win32:Metaphor | | | Ikarus: Virus.Win32.Hezhi | | | Sophos ML: heuristic | --------------------------------------------------------------------------- | VFP 9.0 | Baidu: Win32.Trojan.WisdomEyes.16070401.9500 | | | Cylance: Unsafe | | | Sophos ML: heuristic | --------------------------------------------------------------------------- | VFP Advanced 32-bit | Cylance: Unsafe | --------------------------------------------------------------------------- | VFP Advanced 64-bit | Cylance: Unsafe | --------------------------------------------------------------------------- If we set: /VCENCRYPT=ON Encrypt Executable File /VCPACKEXE=ON Compress Executable File /VFPLIB=ON Include VFP Support Library we get the following scan results from the website www.virustotal.com: --------------------------------------------------------------------------- | VFP VERSION | SCAN RESULTS | --------------------------------------------------------------------------- | VFP 6.0 | Cylance: Unsafe | | | Endgame: malicious (moderate confidence) | | | McAfee-GW-Edition: BehavesLike.Win32.Trojan.wc | --------------------------------------------------------------------------- | VFP 7.0 | Avast: Win32:Metaphor | | | AVG: Win32:Metaphor | | | Cylance: Unsafe | | | Endgame: malicious (moderate confidence) | --------------------------------------------------------------------------- | VFP 8.0 | Avast: Win32:Metaphor | | | AVG: Win32:Metaphor | | | Cybereason: malicious.99d263 | | | Cylance: Unsafe | | | Ikarus: Virus.Win32.Hezhi | | | Sophos ML: heuristic | --------------------------------------------------------------------------- | VFP 9.0 | Cylance: Unsafe | | | Endgame: malicious (moderate confidence) | | | Sophos ML: heuristic | --------------------------------------------------------------------------- | VFP Advanced 32-bit | Clean. | --------------------------------------------------------------------------- | VFP Advanced 64-bit | Clean. | --------------------------------------------------------------------------- 9. Application run speed: Usually, the application run speed equivalent to step-by-step run speed. If choose optimized compile, the application run speed equal to VFP natural compile run speed, some statements (for example, x=x+1) faster than VFP Natural compile run speed. For some of the statements should not optimized, the run time and VFP Natural compile run time ratio of about 7:1 (the worst case). If the application run speed decreased significantly (such as startup, initialization part of the code), and we think the run speed the most important, the statements even if there will be decompiled impact, then we can insert the pragmas to solve this problem: * Here the code will compile into the dynamic link library =[FOXRUN OFF] * The following code will not compile into the dynamic link library ...... =[FOXRUN ON] * Here the code will compile into the dynamic link library 10. GREEN-SOFTWARE: If we would like to compile into a GREEN-SOFTWARE, please select "Include VFP Support Library". That the application required <PROJECT-NAME>.EXE and <PROJECT-NAME>.DLL files (and some data files) can be running in any computer (even if that computer have no VFP runtime files), and can also running in any removable disk. If using Visual C++ 8.0 compiler, need to copy MICROSOFT.VC80.CRT.MANIFEST and MSVCR80.DLL to the application folder. If using Visual C++ 9.0 compiler, need to copy MICROSOFT.VC90.CRT.MANIFEST and MSVCR90.DLL to the application folder. We can use MoleBox or Thinstall pack software to pack <PROJECT-NAME>.DLL and other files (for example, VFP support library files) into <PROJECT-NAME>.EXE. 11. Anti-decompile questions: Usually, VFP C++ Compiler generates an EXE file and a DLL file. The EXE file can be decompiled, but there is no useful VFP source code in the EXE file, the DLL file can only be disassembled. If we open the debug mode, FOXRUNPRGTEMP1, FOXRUNVCXTEMP1, FOXRUNSCXTEMP1, FOXRUNFRXTEMP1, FOXRUNLBXTEMP1 folder under the project is the files eventually included in the EXE file, which is basically does not contain useful VFP source code. In other words, even decompile the EXE file, and there is no value. Usually, VFP C++ Compiler generated the DLL file of up to tens of MB, its C source code of up to several hundred MB, to disassemble and analysis the DLL file will be a huge, time-consuming, it may not have any results and significance of the mission. 12. Debug mode: If we open the debug mode, VFP C++ Compiler will generate a log file and retain the temporary files, easy to analyze the reasons for problem. The temporary files include: <PROJECT-NAME>.VCL: Compile log file (LOG_FILE); <PROJECT-NAME>.VCD: Dictionary file (DICTIONARY_LIST_FILE); <PROJECT-NAME>.VCD2: Dictionary file for variable names in string delimiters (DICTIONARY_LIST_FILE2); <PROJECT-NAME>.VCD3: Dictionary file for field or property names (DICTIONARY_LIST_FILE3); <PROJECT-NAME>.VCDX: Dictionary file for variable names can't be compiled (DICTIONARY_LIST_FILEX); <PROJECT-NAME>.VCN: Name Table Index file (NAME_TABLE_INDEX_FILE); <PROJECT-NAME>.VCK: Keyword file (KEYWORDS_LIST_FILE); <PROJECT-NAME>$VCV$.TMP: Class library and form path file (CLASSLOC_FILE); <PROJECT-NAME>$VCM$.TMP: Class library and form code file (ALLMETHODS_FILE); <PROJECT-NAME>$VC3$.TMP: Class library and form the custom methods, properties file (ALLRESERVED3_FILE); <PROJECT-NAME>$VCI$.TMP: Class library and form the Procedure Init event include PARAMETERS statement file (ALLINITPARA_FILE); <PROJECT-NAME>$VCE$.TMP: Optimize code file (EXECUTE_FILE); <PROJECT-NAME>$VCN$.TMP: Inline function file (INLINE_FILE); <PROJECT-NAME>$VCN2$.TMP: Inline function file have been compiled (INLINE_FILE2); <PROJECT-NAME>$VCINCDATA$.TMP: Incremental compile data file (INCREMENTALDATA_FILE); <PROJECT-NAME>$VCINCMEM$.TMP: Incremental compile memory file (INCREMENTALMEM_FILE); <PROJECT-NAME>$VCINCVCF$.TMP: Incremental compile options file (INCREMENTALVCF_FILE); <PROJECT-NAME>$VCTASKDATA$.TMP: Multi-Task compile data file (MULTITASKDATA_FILE); <PROJECT-NAME>$VCTASKMEM$.TMP: Multi-Task compile memory file (MULTITASKMEM_FILE); <PROJECT-NAME>$VCTASKVCF$.TMP: Multi-Task compile options file (MULTITASKVCF_FILE); FOXRUNPRGTEMP<n>\*.*: Program files FOXRUNVCXTEMP<n>\*.*: Class Library files FOXRUNSCXTEMP<n>\*.*: Form files FOXRUNFRXTEMP<n>\*.*: Report Files FOXRUNLBXTEMP<n>\*.*: Label files 13. Application debug mode: If we open the application debug mode, VFP C++ Compiler will generate a log file when the program running, easy to analyze the reasons for problem. The log file when the application running include: <PROJECT-NAME>DEBUG_<COMPUTER-NAME>.LOG: application run log file (APPLICATION_DEBUG_LOG_FILE). 14. Application error log file: Usually, VFP C++ Compiler only return the last error of the code block when the program running and causes error. If we open the application error log file, VFP C++ Compiler will write all errors to a error log file when the program running and causes error, easy to analyze the reasons for problem. The error log file when the application running and causes error include: <PROJECT-NAME>ERROR_<COMPUTER-NAME>.LOG: application error log file (APPLICATION_ERROR_LOG_FILE). 15. Reserved words: If the variable name same with the following reserved words, it will not be compiled to internal name: Single letter names; The name starts with an underscore; To _ACCESS at the end of the name; To _ASSIGN at the end of the name; VFP reserved words (keywords); FOXTOOLS.FLL function names; Common Win32API function names; DECLARE-DLL statement declare the API function names (DECLARE_FUNCTION_LIST); CREATE TABLE | DBF statement the field name (CREATE_FIELD_LIST); ALTER TABLE | DBF statement the field name (ALTER_FIELD_LIST); GetProfileString, GetPrivateProfileString statement the entries name (PROFILE_KEY_LIST); EXTERNAL statement the variable name (EXTERNAL_VARIABLE_LIST); SELECT-SQL statement in the name of the AS field (AS_FIELD_LIST); Project folder and its subfolders under the file name (FILENAME); Project folder and its subfolders under the table file fieldname (FIELD_NAME); Project folder and its subfolders under the the view parameters name (DBC_VIEW_PARAMETERS); Project folder and its subfolders under the the configuration file entries name (KEY_NAME_IN_INIFILE); Project folder and its subfolders under the memory variable file variables name (VARIABLE_NAME_IN_MEMFILE); Project contained FXP/APP/EXE file the variable name (VARIABLE_NAME_IN_APPFILE); Project contained FXP/APP/EXE file the procedure name (PROCEDURE_NAME_IN_APPFILE); Project contained FXP/APP/EXE file the class name (CLASS_NAME_IN_APPFILE); User reserved words file (<PROJECT-NAME>.VCW) specified reserved words. 16. Compile variable name: To compile variable name, for example, x1 x2 will be converted to: __VC_A __VC_B VFP C++ Compiler only compile the variable name in the equal sign (=) assignment statement (for example, x1=123). For the statements that may be a problem after compile variable name in the file <PROJECT-NAME>.VCD2, for example, cancelar Caption = "Cancelar" Recommend to select "Does Not Compile Variable Names in String Delimiters", then all variable names in string delimiters (include cancelar) will not be compiled. For the statements that may be a problem after compile variable name in the file <PROJECT-NAME>.VCD3, for example, fld1 ?STR(t1.fld1,10) Recommend to select "Does Not Compile Field Names or Property Names", then all field names or property names (include fld1) will not be compiled. We can use the following methods to resolve the problem too: 1, We can select "Does Not Compile Variable Names Specified in the User Reserved Words File", and add a user reserved word to the user reserved words file (<PROJECT-NAME>.VCW), for example, cancelar then all "cancelar" will not be compiled. 2, We can change the control's Caption property to "C"+"ancelar", for example, Caption = ("C"+"ancelar") then the control's Caption property have no "cancelar", but the others "cancelar" will be compiled continue. 3, We can select "Only Compile Variable Names Specified in the User Variable Names File", and add the variable names need to be compiled to the user variable names file (<PROJECT-NAME>.VCV). 17. VFP C++ Compiler 32-bit version and VFP C++ Compiler 64-bit version: 1, VFP C++ Compiler 32-bit version: VFP C++ Compiler 32-bit version can run on Windows 32-bit or Windows 64-bit. When VFP C++ Compiler 32-bit version is running on Windows 32-bit, it supports Visual FoxPro 6.0, Visual FoxPro 7.0, Visual FoxPro 8.0, Visual FoxPro 9.0 and Visual FoxPro Advanced version, it can only compile and generate the Win32 executable files. When VFP C++ Compiler 32-bit version is running on Windows 64-bit, it supports Visual FoxPro 6.0, Visual FoxPro 7.0, Visual FoxPro 8.0, Visual FoxPro 9.0, Visual FoxPro Advanced and Visual FoxPro Advanced (x64) version, it can compile and generate the Win32/Win64 executable files. 2, VFP C++ Compiler 64-bit version: VFP C++ Compiler 64-bit version can only run on Windows 64-bit. When VFP C++ Compiler 64-bit version is running on Windows 64-bit, it supports Visual FoxPro 6.0, Visual FoxPro 7.0, Visual FoxPro 8.0, Visual FoxPro 9.0, Visual FoxPro Advanced and Visual FoxPro Advanced (x64) version, it can compile and generate the Win32/Win64 executable files. 18. Reference websites: 1, baiyujia.com: http://www.baiyujia.com 2, mzvfp.com: http://www.mzvfp.com/read.php?tid=72598 http://www.mzvfp.com/read.php?tid=86545 3, foxite.com: http://www.foxite.com/archives/who-can-hack-this-one-0000260349.htm http://www.foxite.com/archives/hook-me-how-easy-to-break-this-0000246991.htm http://www.foxite.com/archives/new-functions-of-vfp-compiler-c-asm-0000280713.htm http://www.foxite.com/archives/vfp-compiler-demo-0000318456.htm 19. Other questions: For about VFP C++ Compiler questions or suggestions, please send me an email at ccb2000@163.com. |