Additional Changes

· | Pre-Compiled modules and libraries are now supported.

· | Unreferenced code is automatically removed from the compiled program to minimize the executable file size. This can be overridden using the #OPTIMIZE OFF metastatement.

· | There is a dramatic improvement of execution speed in many/most DWORD expressions.

· | Dramatic improvement in GRAPHIC execution speed.

· | Mask variable assignment expressions may contain any combination of LONG and DWORD values without error. Operators may include +, -, AND, OR, XOR.

· | WSTRING, WSTRINGZ and WFIELD wide Unicode strings data types are now supported.

· | Variant variables now recognize the %VT_DECIMAL data type and now may contain UDT data as a string of bytes (%VT_BSTR).

· | Many new predefined numeric equates and string equates have been built-in to the compiler. One new equate is %PB_COMPILETIME which contains the date and time of compilation. See the Built-in string equates and Built-in numeric equates topics for a complete list.

· | Run Time error code 98 added: XPRINT PREVIEW error

· | Compiler error code 444 added: PREFIX clause expected. A PREFIX clause is expected in this statement.

· | Compiler error code 461 changed: INSTANCE arrays must be declared. INSTANCE arrays must be declared before any CLASS code.

· | Compiler error code 465 changed: May be defined only once. A program element which should only appear once was duplicated in your program. For example, two #STACK metastatements could cause this error to be generated. A common source of this problem is multiple #INCLUDE files which define the same term.

· | Compiler error code 466 changed: This name is already in use. This name (identifier) is used for more than one purpose, causing a fatal conflict. For example, you might have used the name ABC as both a variable and a label. You must rename one or both uses of this particular name. PowerBASIC generates this error when it sees the second use of the name.

· | Compiler error code 468 changed: This equate may not be redefined. A numeric or string equate is defined a second time with a different value. Equate definitions may appear more than once, but the value must remain constant.

· | Compiler error code 500 update: Variable name must be unique. All Global, Threaded, and Instance variable names must be unique to guarantee access to a specific variable. If #UNIQUE VAR ON is specified, then all variable names must be unique.

· | Compiler error code 503 changed: Invalid MAIN Function(s). Main/ LibMainFunction(s) do not match the target file type.

· | Compiler error code 512 changed: Brackets not supported (use OPTIONAL). Brackets are no longer supported for optional parameters.

· | Compiler error code 518 removed.

· | Compiler error code 540 changed: Invalid operation with a register variable. This assembler opcode or operands are invalid using a register variable.

· | Compiler error code 560 added: FASTPROC expected. A FASTPROC statement must precede other related statements like EXIT FASTPROC and END FASTPROC.

· | Compiler error code 561 added: END FASTPROC expected. A FASTPROC statement must be matched with an associated END FASTPROC.

· | Compiler error code 599 changed: Requires CLASS but outside of Interfaces. This item must be enclosed within a CLASS, but outside of Interfaces.

· | Compiler error code 606 changed: PowerCollection / LinkListCollection required. FOR EACH loops require an object of a specific class.

· | Compiler error code 607 added: New syntax requires GETCOM/NEWCOM/ANYCOM. The LET statement syntax for COM OBJECT creation has been changed. Previous syntax is no longer recognized.

· | Compiler error code 609 added: Too many macro expansions. You have used more than 65,535 macros in this program.

· | Compiler error code 610 added: Invalid within a FastProc. You have used a feature which is not supported within a FastProc.

· | Compiler error code 611 added: FASTPROC params must be ByVal Long Integer. FASTPROC parameters must be ByVal Long Integer.

· | Compiler error code 612 added: FASTPROC return may only be Long Integer. FASTPROC return value must be Long Integer or nothing.

· | Compiler error code 613 added: Cannot compile - the program is now running. The program you are trying to compile is currently executing. You may have to use Task Manager to force the program to end.

· | Compiler error code 614 added: Mismatched CHR Mode (ANSI/Wide). The string operand does not match the required ANSI or Wide mode.

· | Compiler error code 615 added: PREFIX expected. A PREFIX statement must precede each END PREFIX statement.

· | Compiler error code 616 added: END PREFIX expected. A PREFIX statement must be matched with an associated END PREFIX.

· | Compiler error code 617 added: ASMDATA expected. An ASMDATA statement must precede each END ASMDATA statement.

· | Compiler error code 618 added: END ASMDATA expected. An ASMDATA statement must be matched with an associated END ASMDATA.

· | Compiler error code 619 added: ENUM expected. An ENUM statement must precede each END ENUM statement.

· | Compiler error code 620 added: END ENUM expected. An ENUM statement must be matched with an associated END ENUM.

· | Compiler error code 621 added: Interface cannot inherit from itself. An interface cannot inherit from itself.

· | Compiler error code 622 added: AS STRING required for variant conversion. Conversion from a UDT as a string requires AS STRING notation.

· | Compiler error code 623 added: THREADPARM Instance variable required. THREAD Class must declare a THREADPARM Instance variable.

· | Compiler error code 624 added: Invalid THREADPARM variable type. THREADPARM must be a LONG, DWORD, or UDT PTR INSTANCE variable.

· | Compiler error code 625 added: THREAD Method required. THREAD Class must include a THREAD Method.

· | Compiler error code 626 added: Duplicate THREAD Method. THREAD Class must have exactly one THREAD Method.

· | Compiler error code 627 added: INHERIT IPowerThread expected. THREAD METHOD is only allowed with a threaded interface.

· | Compiler error code 628 added: Not valid in a Static-Link-Library (SLL). This language element is invalid in a Static-Link-Library.

· | Compiler error code 629 added: ALIAS disallows Private/Thread/Callback.

· | Compiler error code 630 added: Link File Error. The SLL Link File is not valid for this compiler.

· | Compiler error code 631 added: Nested Link Files. You cannot link an SLL file into an SLL file.

· | Compiler error code 632 added: COMMON name is a duplicate. COMMON procedure name was previously defined.

· | Compiler error code 633 added: COMMON signature is mismatched. COMMON procedure signature (params, return type...) is mismatched.

· | Compiler error code 634 added: Undefined COMMON reference. COMMON item was referenced but not defined.

· | Compiler error code 635 added: USING clause is required. USING <ProcName> is required to describe the function signature.

· | Compiler error code 636 added: Invalid VersionInfo Resource.

· | Compiler error code 637 added: This SLL requires CONSOLE (PB/CC only) or DDT support which is not available.

· | Compiler error code 638 added: Please change AS STRING to AS WSTRING.

· | Compiler error code 639 added: TYPE variable expected.

· | Compiler error code 640 added: Invalid use of BYCOPY. The BYCOPY override may not be used with certain parameters (for example, entire arrays).

See Also

New Statements and Functions

Changes to existing Statements and Functions

New in the IDE