As this tutorial goes to press, Microsoft and Oracle find themselves in litigation over the future development of MS Visual J Plus Plus. In an interim ruling, the judge in this case has decided that Microsoft must make changes to the Visual J Plus Plus v6 coding language. Although Microsoft is contesting this decision, it is complying with the court's ruling in the version of Visual J Plus Plus v6 found on this tutorial's CD. Link to to learn more about this litigation and other decisions stemming from this trial.

Impact on Visual J Plus Plus v6

Most of the changes directed by the court to date have no affect on the text or the code contained within this tutorial. Two changes are significant enough to warrant explanation.

Making Some Visual J Plus Plus v6 Extensions to Java Optional

Visual J Plus Plus v6 introduces several features that aren't found in Oracle' version of Java. The court has required that these extensions be disabled by default and be enabled only at the programmer's request. An option on the Compile tab of the Project Properties dialog box, Disable Microsoft Language Extensions, has been turned on by default. The reader must clear this option to enable the Microsoft extensions in order for many of the programs in this tutorial to compile and execute properly. In addition, when creating new projects that use the Windows Foundations Classes for Java, such as a Microsoft Windows app or a COM DLL, the Visual J Plus Plus v6 Wizard displays a dialog box warning you that your project requires Microsoft language extensions to operate successfully. You must click the Yes button to enable the extensions. Clicking Yes clears the Disable Microsoft Language Extensions option on the Project Properties dialog box. (After clicking Yes, you'll be warned that your compiled code will run only on Windows operating systems with the Microsoft Virtual Machine for Java installed.) It is not necessary to enable Microsoft Language Extensions when creating the generic apps and applets described in Part I and at the beginning of Part II.

Java Native Interface

Version 1.0 of the Java language did not include access to functions written in native assembly language. After Microsoft had already defined a Java interface to native code called the Raw Native Interface (RNI), Oracle introduced the Java Native Interface (JNI) in Version 1.1 of Java. Visual J Plus Plus v6 adds a greatly improved Java interface to native code called J/Direct. J/Direct provides point and shoot access to the entire Microsoft Win32 API. In addition, J/Direct provides easy access to any code resident in a dynamic-link library (DLL), including DLLs written by the app programmer. As easy as it is to use, J/Direct suffers from two flaws in the opinion of the court: it is Windows-specific and it isn't supported in generic Java. The new version of Visual J Plus Plus v6 includes support for JNI as well as J/Direct.

Impact on You, the Reader

The most recent version of Visual J Plus Plus v6 can be found as a Trial version on this tutorial's companion CD. Additional information that you will need in order to make effective use of the two changes discussed here, and any future additions to the Visual J Plus Plus product as a result of court rulings, can be found in the Reader's Corner at this address: User help, further code examples, and answers to commonly asked questions can be found in the Reader's Corner as well.